linux之 nginx.conf 解析版、原版、项目使用版(官方文档)

一、解析版

## nginx进程数,建议设置为等于CPU总核心数。
worker_processes  1;
## 事件区块开始
events {
## 单个进程最大连接数(最大连接数=连接数*进程数)
## 根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行。每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为。
    worker_connections  1024;
}
## 设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
## include:导入外部文件mime.types,将所有types提取为文件,然后导入到nginx配置文件中
    include       mime.types;
## 默认文件类型
    default_type  application/octet-stream;
## 开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
## sendfile指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime。
    sendfile        on;
## 长连接超时时间,单位是秒
    keepalive_timeout  65;
## 第一个Server区块开始,表示一个独立的虚拟主机站点
    gzip on; # 默认off,是否开启gzip
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

## 上面两个开启基本就能跑起了,下面的愿意折腾就了解一下
    gzip_static on;
    gzip_proxied any;
    gzip_vary on;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    # gzip_min_length 1k;
    gzip_http_version 1.1;
# 第一个网站:个人博客项目配置
    server {
	  	listen       8080;
	  	root         /data/www/hexo;
	  	index        index.html;
	  	location / {
	  		try_files $uri $uri/ /index.html; # 路由模式history的修改
	  	}
    }

## 第二个网站:GeoV网站项目配置
    server {
    	listen       8081;
    	root         /data/www/geov;
    	index        index.html;
    	location / {}
    }
## 第三个网站:
    server {
## 提供服务的端口,默认80
        listen       80;
## 提供服务的域名主机名
        server_name  localhost;
## 对 "/" 启用反向代理,第一个location区块开始
        location / {
            root   html;  #服务默认启动目录
            index  index.html index.htm; # 默认的首页文件,多个用空格分开
        }
## 接口端
        location /police/ {
            proxy_pass   http://192.168.1.182:8852/police/;
            proxy_redirect default;
            proxy_http_version 1.1;
            proxy_connect_timeout   60;
            proxy_send_timeout      60;
            proxy_read_timeout      90;
        }
## py接口端
        location /py/ {
            proxy_pass   http://192.168.1.182:8852/py/;
            proxy_redirect default;
            proxy_http_version 1.1;
            proxy_connect_timeout   60;
            proxy_send_timeout      60;
            proxy_read_timeout      90;
        }
## 错误页面路由
        error_page   500 502 503 504  /50x.html; # 出现对应的http状态码时,使用50x.html回应客户
        location = /50x.html { # location区块开始,访问50x.html
            root   html;  # 指定对应的站点目录为html
        }
    }

}

二、原版


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #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;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

三、项目使用版

user nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log debug;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  60;
    

    client_max_body_size 1024m;

    #gzip  on;
    gzip on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 2;
    gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
    gzip_vary on;
    gzip_proxied   expired no-cache no-store private auth;
    gzip_disable   "MSIE [1-6]\.";


    server {
        listen       80;
        server_name  127.0.0.1;

	      #添加头部信息    
        proxy_set_header Cookie $http_cookie;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;

        location / {
                 #vue项目部署路径,前端
                 root /opt/nginx/dist;
                 #解决页面刷新404问题
                 try_files $uri $uri/ /index.html last;
                 index  index.html index.htm;
                 add_header Cache-Control "no-cache, no-store";
        }
        # java接口端
        location /police/ {
            proxy_pass   http://suntang-cdh4:8080/police/;
            proxy_redirect default;
            proxy_http_version 1.1;
            proxy_connect_timeout   60;
            proxy_send_timeout      60;
            proxy_read_timeout      90;
        }

        location /image/ {
            root /var/filecenter/;
        }

        location /static/ {
            root /var/filecenter/;
        }

         # py接口端
        location /py/ {
            proxy_pass   http://suntang-cdh3:22222/;
            proxy_redirect default;
            proxy_http_version 1.1;
            proxy_connect_timeout   60;
            proxy_send_timeout      60;
            proxy_read_timeout      90;
        }

        # 地图api
        location /geoserver/ {
            proxy_pass   http://suntang-cdh4:8060/geoserver/;
            proxy_redirect default;
        }
        
        
        # warning
        location /police/warning/ws {
            proxy_pass   http://suntang-cdh4:9999/police/warning/ws;
            proxy_redirect default;
            proxy_http_version 1.1;
            # websocket协议升级
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            # proxy_read_timeout 1800s;
            # proxy_connect_timeout 4s; #配置点1
            proxy_read_timeout 60s; #配置点2,如果没效,可以考虑这个时间配置长一点
            proxy_send_timeout 12s; #配置点3
        }
        
        # 数据中心接口端
        location /police/preprocess/ {
            proxy_pass   http://suntang-cdh4:8080/police/preprocess/;
            proxy_redirect default;
            proxy_http_version 1.1;
            proxy_connect_timeout 60s;
            proxy_send_timeout 60s;
            proxy_read_timeout 90s;
        }
        
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen       9233;
        server_name  127.0.0.1;

	      #添加头部信息    
        proxy_set_header Cookie $http_cookie;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;

        location / {
                 #vue项目部署路径
                 root /opt/nginx/dist_client/dist;
                 #解决页面刷新404问题
                 try_files $uri $uri/ /index.html last;
                 index  index.html index.htm;               
        }
        #接口端
        location /police/ {
            proxy_pass   http://suntang-cdh4:8080/police/;
            proxy_redirect default;
            proxy_http_version 1.1;
            proxy_connect_timeout   60;
            proxy_send_timeout      60;
            proxy_read_timeout      90;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

参考地址:

https://github.com/rui-rui-an/nginxpages


已发布

分类

,

来自

标签:

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注