Nginx/Nginx配置文件

nginx.conf配置文件

mac目录位置:/usr/local/etc/nginx/

ubuntu目录位置:/etc/nginx

 nginx.conf配置

/*
  全局块:配置影响nginx全局的指令。
  包括:运行nginx服务器的用户组,
       nginx进程pid存放路径,
       日志存放路径,配置文件引入,允许生成worker process数等
*/
#user  nobody;       //定义Nginx运行的用户和用户组
worker_processes  1; //nginx进程数,建议设置为等于CPU总核心数


/*
  全局错误日志定义类型[debug | info | notice | warn | error | crit ]
*/
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  /var/log/nginx/error.log  info; //定义错误日志地址


/*
  pid:指定nginx进程运行文件存放地址
*/
#pid        logs/nginx.pid;


/*
  events块:配置影响nginx服务器或与用户的网络连接。
  包括:
    每个进程的最大连接数,
    选取哪种事件驱动模型处理连接请求,
    是否允许同时接受多个网路连接,开启多个网络连接序列化等。
*/
events {
    /*
    工作模式与连接数上限:
    worker_connections是单个后台worker process进程的最大并发链接数,
    并发总数是 worker_processes 和 worker_connections 的乘积, 
    即 max_clients = worker_processes * worker_connections
    */
    worker_connections  128;
}


/*
  http块:
    可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。
    如文件引入/mime-type定义/日志自定义/是否使用sendfile传输文件/连接超时时间/单连接请求数等。
*/
http {
    /*
      upstream实现负载均衡(jdca是标识,自定义)
    */
    upstream jdca {
        #server 127.0.0.1:8282 weight=10; //weight权重,值越大,被重定向的几率越大
        #server 127.0.0.1:8282 backup; //热备
        server 127.0.0.1:8282;
    }

    //文件扩展名与文件类型映射表
    include       mime.types;

    //默认文件类型,默认为text/plain
    default_type  application/octet-stream;

    //自定义格式main
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    //combined为日志格式的默认值,应用自定义格式main
    #access_log off; //取消服务日志
    access_log  /var/log/nginx/access.log main;

    //开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来 输出文件,
    //对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置 为off,
    //以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常 把这个改成off。
    sendfile        on;

    //防止网络阻塞
    #tcp_nopush     on;

    //长连接超时时间,单位是75秒
    keepalive_timeout  65;

    //开启gzip压缩输出
    #gzip  on;

    /*
        Server块:配置虚拟主机的相关参数,一个http中可以有多个server
    */
    server {

        listen       8089;  //监听端口

        server_name  _;     //监听地址 _:是一个无效的域名,即不限制匹配所有域名

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        /*
          location块:配置请求的路由,以及各种页面的处理情况
        */

        location / {   #eg: /index.html区配该模式

            //根路径
            root   /Users/shiyufeng/Documents/kaixinyufeng/workspace/vsCode/baas-react-ui/dist/; 

            //设置默认页
            index  index.html index.htm;
        }

        location /rancher { #eg: /rancher/index.html区配该模式

            //添中请求头,允许跨域
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Credentials true;
            add_header Access-Control-Allow-Methods 'PUT, GET, POST, DELETE, OPTIONS';
            add_header Access-Control-Allow-Headers 'Origin,X-Requested-With,Cluster-Id,Content-Type,Accept';
            if ($request_method = OPTIONS) {
                return 200 "true";
            }

            //rewrite重写url去掉/rancher
            rewrite    /rancher/(.*) /$1 break;


            //请求转向rancher定义的服务器列表(proxy_pass:反向代理服务器)
            proxy_pass http://rancher;

            #deny 127.0.0.1;  //拒绝的IP

            #allow 127.0.0.1; //允许的IP

            #proxy_set_header Host identity.jd.com;

        }

        /*
            设置错误页面
        */
        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    
    include servers/*;
}

参考博客:

nginx.conf配置文件解析

原文地址:https://www.cnblogs.com/kaixinyufeng/p/9844048.html