NGINX配置文件详解

nginx配置文件注释

user root; #设置nginx权限用户
worker_processes  auto; #工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。

events {
    worker_connections  32768; #没个工作进程的最大连接数量。根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行
    multi_accept on; #告诉nginx收到一个新连接通知后接受尽可能多的连接。
}

proxy_cache_path /nginx1.13.2/temp/cache_temp levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=40g; #设置内存缓存空间大小为500MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为40GB。

gzip  on; #开启gzip压缩
gzip_comp_level 3; #压缩质量等级,越大压缩的效果越好,但是cpu消耗越高,通常为3即可
gzip_proxied any; #允许或者禁止压缩基于请求和响应的响应流。我们设置为any,意味着将会压缩所有的请求,开启反向代理后需要设置。
gzip_min_length 1k; #设置对数据启用压缩的最少字节数。如果一个请求小于1000字节,我们最好不要压缩它,因为压缩这些小的数据会降低处理此请求的所有进程的速度。
gzip_types text/plain application/x-javascript application/javascript text/javascript text/css application/xml application/x-httpd-php image/jpeg image/gif image/png;  #设置需要压缩的数据格式,以上为压缩图片格式、css、js和文本
gzip_buffers 32 4k;  #设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。
gzip_disable "MSIE[1-6]\.";  #设置IE 1-6版本不压缩
gzip_vary on;  #根据客户端的HTTP头来判断,是否需要压缩

upstream gfmh {             # 负载均衡服务器设置,设置名字为gfmh
    ip_hash;  # 基于IPhash的模式访问 如果不设置,默认为轮询模式
    server 192.168.1.46:8080 ; #分别对应三台web服务器
    server 192.168.1.134:8080 ; 
    server 192.168.1.134:8080 ; 
}  

#负载均衡server的配置
server {
        listen       8888;  #设置监听的端口 生产环境应该为80或者443
        server_name  192.1
    location /phymcms   #反向代理目录
    {
        proxy_pass http://gfmh;  #反向代理到负载均衡上
        index index.html index.htm; #默认web文件
        proxy_set_header Host $host:$server_port;  #传递IP和端口
        proxy_set_header X-Real-IP $remote_addr; #传递真实IP地址
        proxy_set_header X-Real-port $remote_port; #传递真实端口
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_set_header REMOTE-HOST $remote_addr; #设置http头的地址
        
        #缓存相关配置
        proxy_cache cache_one;  #设置缓存的目录cache_one
        proxy_cache_key $host$request_uri$is_args$args;#设置缓存的key
        proxy_cache_valid 200 304 301 302 1h;  #设置缓存时间
        
        #持久化连接相关配置
        proxy_connect_timeout 30s; #设置连接超时时间
        proxy_read_timeout 86400s; #设置超时时间
        proxy_send_timeout 30s; #设置超时时间
        proxy_http_version 1.1; #设置http版本
        proxy_set_header Upgrade $http_upgrade; #设置刷新
        proxy_set_header Connection "upgrade"; #设置http刷新头
        add_header X-Cache $upstream_cache_status; #设置负载均衡缓存状态头
        expires 12h; 
    }

#反向代理的server配置说明
server {
    listen	 8081;
    server_name  192.168.1.217;

    proxy_set_header           Host $host;
    proxy_set_header           X-Real-IP $remote_addr;
    proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;
    add_header Access-Control-Allow-Origin *;

    location /server-status #开启nginx状态监控
    {
        stub_status on;
        access_log  /var/log/nginx/status.access.log;
    }

    location ^~ /app-api-server/ #反向代理到API服务器
    {
        proxy_pass  http://192.168.1.154:8765/app-api-server/;
    }

    location / #反向代理到本地80端口
    {
        proxy_pass http://127.0.0.1:80;
    }