首页 > 其他 > 详细

nginx配置

时间:2019-03-17 22:06:21      阅读:163      评论:0      收藏:0      [点我收藏+]

Nginx简介
web 反向代理 缓存
优点:
简单稳定
模块
rewrite
Nginx部署
安装:
apt-get install -y build-essential libssl-dev libtool libpcre3 libpcre3-dev make openssl zlib1g-dev
apt-get install nginx -y
基本的目录:
/etc/nginx
/var/www/html /usr/share/nginx/html
/var/log/html
/usr/sbin/nginx
配置文件:
/etc/nginx/nginx.conf
全局配置段
http配置段
server配置段 项目、应用 一个域名
location配置段 url

                http >= server(>= location)  
        访问原理:
            1  浏览器拆分地址  地址+路径
            2  根据地址找服务器
            3  把路径交给指定server的location去处理
            4  location找到对应文件后返回给浏览器
                        
        nginx请求处理:master /worker 
        
    配置详解
        全局配置段
            work_processes
            events{work_connections}
        http配置段
            sendfile
            gzip
        server配置段
            server{
                listen              指定监听地址
                server_name         指定主机名 -- 一般用项目域名来代替
            }
            优先级:
                listen > server_name
            
            示例:
            server {
                listen 192.168.8.14:99;
                server_name www.baidu.com;
                root /var/www/html;
                index index.html index.htm index.nginx-debian.html;
                location / {
                }
            }


        location配置段
            location optional_modifier location_match { ... } 
                optional_modifier   匹配条件
                    正则 、普通
                    
                    优先级:    
                        精确 > 优先 > 正则 > 通用
                        
                location_match      匹配样式
                    后缀 *** 
                    路径 **
                    
            匹配样式中的 / 
                没有 / 表示文件
                有 / 表示目录
                
            示例:
                参考下发的配置文件示例
            
            root        相对路径
            alias       绝对路径
            
Nginx进阶知识
    反向代理    
        正向  保护的是后端的客户
        反向  保护的是后端的服务器
        
        反向代理的配置;
            proxy_pass 
            proxy_set_header
            
        proxy_pass的时候,后面的url有无"/"是不一样的
            示例代码:
            location /html/ {
              1 proxy_pass http://proxy.com; 
                2 proxy_pass http://proxy.com/;
            }
            假设我们访问的url是 http://domain.com/html/test.js,如何理解上述两种proxy_pass的区别呢?
            对于 1 来说 proxy.com后面没有"/",表示"/html/" 请求(包括自己)后续的路径及其参数等关键字都由http://a.com/来处理,代理后的样式如下:
            http://proxy.com/html/test.js
            对于 2 来所 proxy.com后面有"/",表示"/html/" 请求后续的路径及其参数等关键字都由http://a.com/来处理,代理后的样式如下:
            http://proxy.com/test.js            
            
    负载均衡
        proxy_pass 针对的是单个
        
        upstream
            server 指令
        
        upstream 状态:
            手工
                down         
            自动:
                backup
                max_fails
                fail_timeout
                
            示例:
                参考下发的配置文件示例 
                
        调度策略
            内置策略
                轮训  默认
                加权轮训
                哈希
                ip_hash
                最小链接
                cookie
            扩展策略
                自定义
                第三方: fair  url_hash
                
            示例:
                参考下发的配置文件示例                 
            
    日志解析
        目的:
            1 日志的定制 -- 未来项目的监控
            2 学习nginx内置变量 --- 用户请求的精细化管理
            
        日志格式
            定义格式
                log_format 日志格式名称 "nginx内置变量自定义组合"
            使用格式
                access_log 日志路径 日志格式名称
        日志实践(反向代理获取真实的客户端IP)
            步骤:
                1 定制日志格式
                2 反向代理服务器设置相关的属性配置
                3 真实后端主机使用相关属性
                
            示例:
                参考下发的配置文件示例                     
        
            
    URL重写   
        场景: 用户请求的定制分发
        规则:
            rewrite 正则 重写样式 标签
                正则作用的对象是 原来请求中的路径
                重写样式的对象是 用户最后看到的样式
                标签:
                    last                正则
                    break               优先正则
                    redirect
                    permanent
        if 指令   
            场景:用户请求的精细分发
            if (内置变量 符号 值) {
                ...
            }
            
        if 实践 防盗链
            $invalid_referer
            curl
                -I
                -H

nginx配置

原文:https://www.cnblogs.com/WhiteCoder/p/10549113.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!