NGINX配置

作者: ahhhhhhhh | 来源:发表于2014-10-17 19:10 被阅读371次

    NGINX配置

    @(nginx笔记)[nginx]

    参考:http://www.oschina.net/translate/nginx-setup?print

    #运行用户
    user xxxuser xxxgroup;
    
    #启动进程,和CPU核心相等最好或"worker_processes  auto;"自动检测
    worker_processes  1;
    
    #worker进程最大可打开文件数据限制,默认为操作系统的限制
    worker_rlimit_nofile    30000;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
            #epoll多路复用IO中的一种方式,仅用于linux2.6以上内核,可提高nginx性能
            use epoll;
    
            #单个后台worker process进程的最大并发链接数
            #并发总数是 worker_processes 和 worker_connections 的乘积
            #即 max_clients = worker_processes * worker_connections
            #反向代理时为 max_clients = worker_processes * worker_connections / 4
            #worker_connections 值设置大小受物理内存影响
            #max_clients 并且受IO约束,值最好小于系统可打开最大文件句柄再适当降低
            #查看当前机器配置可打开句柄数 cat /proc/sys/fs/file-max
            #最大连接数也受系统可能socket连接数限制(~64K)
            worker_connections  1024;
    
            #让NGINX在接收到一个新连接通知后调用accept()来接受尽可能多的连接
            multi_accept on;
    }
    
    
    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;
    
            #关闭版本显示
            server_tokens   off;
    
            sendfile        on;
            #tcp_nopush     on;
    
            #keepalive_timeout  0;
            keepalive_timeout  10;#生产环境决定在短时间内用户不会有第二次请求
    
            #关闭不响应的客户端连接
            reset_timedout_connection on;
    
            #客户端在指定时间内没有响应时判定超时,关闭连接
            #default = 60
            send_timeout 10;
    
            #客户端请求头信息以及实体信息超时未响应 NGINX返回 “Request time out 408”
            #default = 均为60
            client_header_timeout 10;
            client_body_timeout 10;
    
            #指定用来存储所有访问连接数值的共享内存空间大小
            #1m约存储1.6W个64位的状态
            #http://nginx.org/cn/docs/http/ngx_http_limit_conn_module.html
            limit_conn_zone $binary_remote_addr zone=addr:5m;
            #限制每个IP同时允许的连接数,从共享空间addr中读取,否则NGINX返回 “Service unavailable 503”
            #limit_conn addr 50;
    
            #默认字符集
            charset UTF-8;
    
            #gzip
            gzip  on;
            gzip_disable "msie6";   #对IE6关闭gzip功能
            gzip_proxied any;       #对所有请求类型开启gzip
            gzip_min_length 1000;   #最小启用gzpi的文件字节大小,太小文件反而不划算 default:0
            gzip_comp_level 4;      #压缩级别 1最低 9最高 default:1
    
            #负载均衡配置
            upstream loginweb {
            #       server 192.168.1.138:80;
                    server 192.168.1.133:80;
            #       server 192.168.1.135:80;
            #       server 192.168.1.136:8088;
    
                    server 127.0.0.1:808 backup;#所有负载机宕机后的展示页
    
            }
    
            server {
                    listen       80;
                    server_name  *.cos.com;
    
                    charset utf-8;
    
                    access_log  logs/loginweb.access.log  main;
    
                    #代理
                    location / {
                            proxy_pass http://loginweb;
    
                            #向后端转发用户来访IP
                            proxy_set_header X-Real-IP $remote_addr;
    
                            #请求和后端连接超时时间,在此时间内后端必须响应前端握手请求
                            #default = 60s
                            proxy_connect_timeout 5;
    
                            #后端连接成功后,后端处理数据的时间
                            #default = 60s
                            proxy_read_timeout 60;
    
                            #后端数据传回时间
                            #default = 60s
                            proxy_send_timeout 60;
    
                            #从后端读取的第一部份应答缓冲区大小 通知包含一个小的答应头
                            #default = 4k / 8k
                            #proxy_buffer_size = 4k;
    
                            #从后端读取的数据缓存区数目和大小
                            #default = 8 4k/8k
                            proxy_buffers 8 18k;
    
                            #proxy_buffers设置的缓冲区使用完后再申请的缓冲大小(高负载)
                            #default = proxy_buffer_size * 2
                            proxy_busy_buffers_size 64k;
    
                            #代理缓冲区临时文件大小
                            #default = proxy_buffer_size * 2
                            #proxy_temp_file_write_size 64k;
    
                            #代理缓冲区临时文件最大大小
                            #default = 1G
                            proxy_max_temp_file_size 128m;
                    }
    
                    #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;
                    }
    
            }
    
            #backup站点以及状态页
            server {
                    listen  808;
                    server_name     127.0.0.1;
    
                    access_log logs/noserver.access.log main;
    
                    location / {
                            root html;
                            index   noserver.html;
    
                    }
    
                    location /status {
                            stub_status on;
                            access_log off;
    
                            allow   127.0.0.1;
                            allow   192.168.1.135;
                            deny    all;
                    }
            }
    
            #关闭所有未绑定的默认站点
            server {
                    listen 80 default;
                    return 500;
            }
    }
    
    

    相关文章

      网友评论

        本文标题:NGINX配置

        本文链接:https://www.haomeiwen.com/subject/xipptttx.html