nginx 配置

 nginx基本服务配置:

  nginx大部分配置可以 在 http、server、localtion 不同的作用域下有效。 功能配置上 我们都希望尽可能 的范围小,不要影响其他的应用。

  • location:请求路由 映射,匹配拦截。
    location匹配规则:
         在顺序上,前缀字符串顺序不重要,按照匹配长度来确定,正则表达式则按照定义顺序。
         在优先级上,= 修饰符最高,^~ 次之,再者是正则,最后是前缀字符串匹配。
    server {
        location /doc {
            [ configuration A ] 
        }
        location /docu {
            [ configuration B ] 
        }
    }
    
    # 请求 /document 使用 configuration B
    # 虽然 /doc 也能匹配到,但在顺序上,前缀字符串顺序不重要,按照匹配长度来确定
  • root真实路径:是  root指定的值   加上   location指定的值。【只有 "/" 路径的 location的文件目录是用root的,其它的都用alias】
    如果一个网站里面根据目录可能还有 子网站,如果网站的帮助文档子站,这时就需要指向文件目录就可能要用到alias了。
  • alias真实路径:是  alias指定的值,不包含location指定的值了。【一般指定url的话,用alias指定路径,而不是 root】
  • index:首页设置
  • try_files  :https://blog.csdn.net/xf552527/article/details/78720870
  • rewrite:https://www.cnblogs.com/yoyo1216/p/13278090.html
  • proxy_pass:
    server {
        listen       8000;
        server_name  localhost;
    
        location / {
            root   E:/代码仓库/B09_汽车金融综合业务平台/1.开发库/4.源码类/sm-hfi/sm-cdb-web/src/main/webapp;
            index  index.html;
        }
    
        #下面配置node服务器的地址,服务程序会自动进行代理转发  
        location /api {
            rewrite ^.+api/?(.*)$ /$1 break;
            include uwsgi_params;
            proxy_pass   http://192.168.90.112:3000;
        }  
    }

 

反向代理中 proxy_set_header 相关配置:https://blog.51cto.com/u_6215974/4937509

  • proxy_set_header:即允许重新定义或添加字段传递给代理服务器的请求头。该值可以包含文本、变量和它们的组合。在没有定义proxy_set_header时会继承之前定义的值。默认情况下,只有两个字段被重定义:
    proxy_set_header Host $proxy_host;
    proxy_set_header Connection close;

 

 

日志配置

  服务器的日志是很重要的,如果出现问题就是通过日志来分析问题出在哪里的。如 反向代理,请求不成功时,通过日志可以查看 真实的请求地址是不是正确。

1、日志级别:

  • nginx日志级别 debug |info |notice |warn | error | crit 丨 alert | emerg,错误级别从左到右越来越大。
    日志 级别 在 后面 配置上就可以,默认的级别 combined.
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;

    如果出现问题,就开启  dubug 级日志,排查问题就可以了。

  • 自定义日志级别(显示格式):
    http {
        
        //自定义了一个proxy级别日志,后面配置对应的日志内容
        log_format  proxy  '$remote_addr - $remote_user [$time_local] "$request" '
                         '$status $body_bytes_sent "$http_referer" '
                         '"$http_user_agent" "$http_x_forwarded_for"';

    显示内容根据配置的  变量  就可以把值对应显示出来。(内置变量列表 在下面)
    使用时,在对应的server或location 里面启用这个级别的日志

            location / {
                root   html;
                index  index.html index.htm;
                access_log  logs/access.log  proxy;
            }

     

2、nginx中日志分析:https://www.yisu.com/zixun/161169.html 

  日志文件中包含的信息如下:

      1.客户端(用户)IP地址。如:上例中的 201.158.69.116

      2.访问时间。如:上例中的 [03/Jan/2013:21:17:20 -0600]

      3.访问端口。如:上例中的 127.0.0.1:9000

      4.响应时间。如:上例中的 0.007

      5.请求时间。如:上例中的 0.007

      6.用户地理位置代码(国家代码)。如:上例中的 MX(墨西哥)

      7.请求的url地址(目标url地址)的host。如:上例中的 pythontab.com

      8.请求方式(GET或者POST等)。如:上例中的 GET

      9.请求url地址(去除host部分)。如:上例中的 /html/test.html

      10.请求状态(状态码,200表示成功,404表示页面不存在,301表示永久重定向等,具体状态码可以在网上找相关文章,不再赘述)。如:上例中的 "200"

      11.请求页面大小,默认为B(byte)。如:上例中的 2426

      12.来源页面,即从哪个页面转到本页,专业名称叫做“referer”。如:上例中的 "http://a.com"

      13.用户浏览器语言。如:上例中的 "es-ES,es;q=0.8"

      14.用户浏览器其他信息,浏览器版本、浏览器类型等。如:上例中的  "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11"

 3、自定义日志格式:https://blog.csdn.net/u013727805/article/details/107262455   [ 目前没有测试成功 ]

 

nginx 内置变量:

  • nginx 全局变量:https://www.cnblogs.com/yyxianren/p/10815007.html
    • $uri : 不带请求参数的当前URI,$uri不包含主机名,如”/foo/bar.html”。
    • $server_name : 服务器名称。
    • $args:请求中的参数,如www.123.com/1.php?a=1&b=2的$args就是a=1&b=2

 

nginx 常用功能配置

 

nignx中可能出现的问题

  a、上传大文件超时解决办法【nginx可以实现针对,某个接口 配置 上传文件和超时时间的设置】:https://blog.csdn.net/liutong123987/article/details/79301871

 

 

nginx 的 其它概念、功能: 

1、nginx 批处理 :https://www.cnblogs.com/hope250/p/7892546.html

2、nginx 优雅的重启: https://www.zhangshengrong.com/p/zAaOKJbEad/

   说明:如果nginx要配置新的 web 服务器,配置文件改好后。通过优雅的重启,不会影响已经在nginx中运行的项目。 

 

posted @ 2018-04-28 13:38  吴飞ff  阅读(600)  评论(0编辑  收藏  举报