zoukankan      html  css  js  c++  java
  • nginx.conf 配置解析及常用配置

    本文为博主原创,未经允许不得转载:

      nginx.conf 配置文件配置解析

      #定义 Nginx 运行的用户和用户组。默认nginx的安装用户为 nobody
        user www www;
    
      #启动进程,通常设置成和 cpu 的数量相等,即worker 进程数量,默认为1
        worker_processes 8;
    
      #单个后台 worker process 进程的最大并发链接数 (最大连接数=连接数*进程数)
        worker_connections 102400;
    
      #全局错误日志及 PID 文件
        error_log /usr/local/nginx/logs/error.log;
    
      #错误日志定义等级,[ debug | info | notice | warn | error | crit ]
        pid /usr/local/nginx/nginx.pid;
    
       #keepalive 超时时间,客户端到服务器端的连接持续有效时间
        keepalive_timeout 120;
    
      #允许客户端请求的最大单文件字节数
        client_max_body_size 10m;

      Nginx WEB 默认发布静态页面,也可以均衡后端动态网站,用户发起 HTTP 请求,如果请求静态页面,Nginx 直接处理并返回,如果请求的是动态页  面,Nginx 收到请求之后会进行判断,转到后端服务器去处理。

      Nginx 实现负载均衡需要基于 upstream 模块,同时需要设置 location proxy_pass 转发指令实现。如下为 Ningx 应用负载均衡集群配置,根据后端实际情况修改即可,study_www 为负载均衡模块的名称,可以任意指定,但必须跟 vhosts.conf、Nginx.conf 虚拟主机的 proxy_pass段保持一致,否则不能将请求转发至后端的服务器,weight 表示配置

    权重,在 fail_timeout内检查 max_fails 次数,失败则剔除均衡。

     upstream study_www {
        server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;
        server 127.0.0.1:8081 weight=1 max_fails=2 fail_timeout=30s;
     }

     nginx 常用配置:

    #虚拟主机配置
    server {
      #侦听 80 端口
      listen 80;
      #定义使用 www.studey.net 访问
      server_name www.studey.net;
    
      #设定本虚拟主机的访问日志
      access_log logs/access.log main;
      root /data/webapps/www;   #定义服务器的默认网站根目录位置
      index index.php index.html index.htm; #定义首页索引文件的名称
    
      #默认请求
      location ~ /{
        root /data/webapps/www;  #定义服务器的默认网站根目录位置
        index index.php index.html index.htm;    #定义首页索引文件的名称
        #以下是一些代理的配置
        #如果后端的服务器返回 502504、执行超时等错误,自动将请求转发到 upstream 负载均衡池中的另一台服务器,实现故障转移。.
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
        proxy_redirect off;
        #后端的 Web 服务器可以通过 X-Forwarded-For 获取用户真实 IP
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://study_www; #请求转向后端定义的均衡模块
      }
    
      # 定义错误提示页面
      error_page 500 502 503 504 /50x.html;
      location = /50x.html {
        root html;
      }
    
      #配置 Nginx 动静分离,定义的静态页面直接从 Nginx 发布目录读取。
      location ~ .*.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
        root /data/webapps/www;
        #expires 定义用户浏览器缓存的时间为 3 天,如果静态页面不常更新,可以 设置更长,这样可以节省带宽和缓解服务器的压力,在浏览器保存该类型文件的天数。
        expires 3d;
        }
      }
    }

        通过 Expires 参数设置,可以使浏览器缓存过期时间,减少与服务器之前的请求和流量。具体 Expires 定义是给一个资源设定一个过期时间,

      也就是说无需去服务端验证,直接通过 浏览器自身确认是否过期即可,所以不会产生额外的流量。

        如果静态文件不常更新,Expires 可以设置为 30d,表示在这 30 天之内再次访问该静态 文件,浏览器会发送一个 HTTP 请求,会比对服务器

      该文件最后更新时间是否有变化,如果 没有变化,则不会从服务器抓取,返回 HTTP 状态码 304,如果有修改,则直接从服务器重 新下载,返回

       HTTP 状态码 200

        也可以在同一个nginx 上配置多个server,并开启不同的端口:

    worker_processes 1;
    events { 
        worker_connections 1024; 
    }
    http {
        include mime.types; 
        default_type application/octet-stream; 
        sendfile on; keepalive_timeout 65;
        server { 
            listen 80; 
            server_name www.test1.com; 
            access_log logs/test1.access.log; 
            location / { 
                root html/test1; 
                index index.html index.htm; 
                } 
        }
        server { 
            listen 81; 
            server_name  www.test2.com; 
            access_log logs/test2.access.log; 
            location / { 
                root html/test2; index in
                dex.html index.htm; 
                } 
            }
    }

    通过 Windows 客户端配置 hosts 绑定 IP 与两个域名的 对应关系,在 IE 浏览器访问测试效果。

      3.nginx 还可以设置ip黑名单,限流,防盗链以及请求头,请求方法,https 等配置。很多需要依赖引用第三方模块进行配置。

  • 相关阅读:
    面试题(8)之 在线题
    deepin深度学习环境配置
    ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(一)
    ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(三)
    ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(二)
    阅读博客后结合自身经历的心得体会
    软件工程学习后问题解答
    软件工程课后总结与反思
    学霸数据处理项目之数据处理网页以及后台以及C#代码部分开发者手册
    学霸数据处理项目之数据处理框架开发者手册
  • 原文地址:https://www.cnblogs.com/zjdxr-up/p/14766736.html
Copyright © 2011-2022 走看看