Nginx配置文件及优化说明分享

1、系统及内核方面

根据服务器用途,建议系统最小化安装或针对web服务器进行系统内核重新编译;在内核参数的一些优化,如下:

# Add
 net.ipv4.tcp_max_syn_backlog = 65536  #表示SYN队列的长度
 net.core.netdev_max_backlog =  32768  #进入包的最大设备队列.
 net.core.somaxconn = 32768            #listen()的默认参数,挂起请求的最大数量.
 net.core.wmem_default = 8388608    #指定了发送套接字缓冲区大小的缺省值
 net.core.rmem_default = 8388608   
net.core.rmem_max = 16777216      #最大socket写buffer
 net.core.wmem_max = 16777216    #最大socket读buffer
 net.ipv4.tcp_timestamps = 0    #可以防范那些伪造的sequence号码,关掉可以提高性能。
 net.ipv4.tcp_synack_retries = 2 
net.ipv4.tcp_syn_retries = 2  # 新连接,内核要发送多少个SYN连接请求才决定放弃。
 net.ipv4.tcp_tw_recycle = 1    #开启TCP连接中TIME-WAIT sockets的快速回收
 net.ipv4.tcp_tw_reuse = 1      #允许将TIME-WAIT sockets重新用于新的TCP连接。
net.ipv4.ip_local_port_range = 5000  65535  #将系统对本地端口范围限制在5000~65000
 
2、配置方面优化
    如编译时使用 --with-cc-opt='-O3' 增加GCC的优化;去掉Nginx的debug模式编译(debug模式会插入很多跟踪和ASSERT之类),这样编译后文件大小降低几倍之多;
 nginx配置文件
 user  www www;
 worker_processes 8;  #设置为CPU数目(核数),需根据实际情况进行设置。
 error_log  logs/nginx_error.log  crit;
 pid        logs/nginx.pid;
 
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;  #进程能够打开的最多文件描述符数(65535)
 events
{
        use epoll; 
        worker_connections 51200;  每个工作进程允许最大的同时连接数
 
        #服务器允许的最大连接数跟worker_processes 、worker_connections 有直接关系。
 }
 
http
{
        include      mime.types;
        default_type  application/octet-stream;
 
        #charset  gb2312;
     
        server_names_hash_bucket_size 128; 
        client_header_buffer_size 32k;    #客户端请求的Head头缓冲区大小,如果cookie内容较大,需加大
        large_client_header_buffers 4 32k;   
        client_max_body_size 8m;    #设置客户端能够上传的文件大小
     
        sendfile on;
        tcp_nopush    on;
        keepalive_timeout 60;
        tcp_nodelay on;
 
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 128k;
        fastcgi_intercept_errors on;
        fastcgi_hide_header Pragma;
 
        gzip on;
        gzip_min_length  1k;
        gzip_buffers    4 16k;
        gzip_http_version 1.0;
        gzip_comp_level 2;
        gzip_types      text/plain application/x-Javascript text/css application/xml;
        gzip_vary on;
 
        autoindex off;
        server_tokens off;
        server_name_in_redirect off;
   
        include zhuji0.conf;    #实现nginx VirtualHost
 }
   
3、Nginx(针对webserver)环境运行php-cgi,可配置php加速器,这样可提高nginx处理能力。可以加入php加速器eaccelerator

4、其他方面

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/59bdcbf8d1179d0b511329883184a4da.html