nginx.conf配置

195 阅读3分钟

nginx.conf配置

#常用Nginx命令
nginx                      # 打开Nginx
nginx -t                   # 查看Nginx状态
nginx -s reload            # 重新载入配置文件
nginx -s reopen            # 重启Nginx
nginx -s stop              # 强行停止Nginx
nginx -s quit              # 优雅停止Nginx
# nginx.conf
user root;
worker_processes  1;#工作进程的个数,一般与计算机的cpu核数一致

events {
    worker_connections  1024;#单个进程最大连接数(最大连接数=连接数*进程数)
}

http {
    include       mime.types;#文件扩展名与文件类型映射表
    default_type  application/octet-stream;#默认文件类型
    sendfile        on;#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
    keepalive_timeout  65;#长连接超时时间,单位是秒
    
    # 开启gzip    on为启用,off为关闭
    gzip on;
    gzip_static on;
    # 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
    gzip_min_length 1k;   
    # gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间,越小压缩效果越差,但是越大处理越慢,所以一般取中间值; 
    gzip_comp_level 3;       
    # 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
    gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    # 禁用IE 6 gzip
    gzip_disable “MSIE [1-6].”; 
    # 设置压缩所需要的缓冲区大小    
    gzip_buffers 4 16k;            
    #跟Squid等缓存服务有关,on的话会在Header里增加 "Vary: Accept-Encoding"
    gzip_vary off; 
                
    #服务器的集群
    # max_fail 设置在fail_timeout参数设置的持续时间内发生的与服务器通信的不成功尝试次数,如达到该值以认为服务器在fail_timeout参数设置的持续时间内部可用、默认为1
    # fail_timeout 1.判断服务器是否可用的周期,在该周期内如有max_fail次无法正常通信,则认为该服务器不可用;2.服务器在判断为不可用后,持续标识为不可用的时间,期间不会发送任何请求到该服务器。默认为10
    # weight 默认为1,按照比例分发请求
    # backup 当非backup服务器出现不可用,则启用由该指令标识的服务器,平时服务器不分配流量
    # solw_start 不可用服务器变为可用,在该参数所指定的时间内,weight值从0增长为增长为weight值,该参数无法和hash,ip_hash,randon公用
    # max_conn 服务器的最大连接数,如没有配置zone,为每个worker独立计算,如配置zone,为整体最大连接限制
    upstream myproject {
        # least_conn 当前连接最小的服务器优先
        ip_hash; #对客户端IP取hash,根据hash值分发
        server 127.0.0.1:8080 max_fail=10 fail_timeout=30s max_conns=300;
        server 127.0.0.1:8081 max_fail=10 fail_timeout=30s slow_start;
        server 127.0.0.1:8082 max_fail=10 fail_timeout=30s backup;
        server 127.0.0.1:8083 max_fail=10 fail_timeout=30s down;
    }
    
    server {
        listen       80;
        server_name  localhost;
        
        #设置访问路径
        #location / {
            #root   /xxx/dist; # 路径改成自己的dist路径
            #try_files $uri $uri/ /index.html; #防止刷新页面时404
            #index  index.html index.htm;#访问文件名称
        #}

        location / {
            proxy_buffering on; #服务器发送的数据会被立即发送给客户端
            proxy_pass http://myupstream;
        }

        #反向代理
        location /prod-api/{
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;#使用$remote_addr的值,该值为客户端IP地址
                proxy_set_header REMOTE-HOST $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#该报文头是一个list,如该请求被多次代理转发,在每次的转发中,每一级级转发服务器都可以将自己的IP地址添加到这个list,$proxy_add_x_forwareded_for这个变量继承来原来报文头中的X-Forwarded-For报文内容,并且把nginx自己的ip地址添加在最后
                proxy_pass http://localhost:8080/; #设置监控后端启动的端口
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root html;
        }
}