nginx常用优化参数

作者: 肖金光xjg | 来源:发表于2017-03-02 15:01 被阅读100次

    ** worker进程数 **
    worker_process 4;
    nginx的进程数,一般按着CPU的数目来指定,或者倍数(因为超线程)

    ** nginx进程绑定指定CPU **
    worker_cpu_affinity 0001 0010 0100 1000;
    为每个进程绑定cpu
    worker_cpu_affinity配置是写在/etc/nginx/nginx.conf里面的;2核是 01,四核是0001,8核是00000001,有多少个核,就有几位数,1表示该内核开启,0表示该内核关闭。
    注意:2.4内核的机器用不了worker_cpu_affinity

    ** 单个nginx进程打开的最多的文件描述符数目 **
    worker_rlimit_nofile 65535;
    理论值应该是最多打开文件数(ulimit -n)与nginx 进程数相除,但是nginx 分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。

    ** 选择epoll I/O模型 **
    use epoll;

    ** 单个nginx进程连接数 **
    worker_connections 102400;
    每个进程允许的最多连接数, 理论上每台nginx 服务器的最大连接数为worker_processes*worker_connections

    ** 长连接超时时间 **
    keepalive_timeout 60;

    ** 客户端请求头部的缓冲区大小 **
    client_header_buffer_size 4k;
    客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求
    头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE 取得。

    ** 客户端请求主体的缓冲区大小 **
    client_max_body_size 8m;

    ** 开启文件零拷贝 **
    sendfile on;
    如果nginx反向代理时,开启的效果不大

    ** 开启tcp_nopush **
    tcp_nopush on;
    只有sendfile on的情况下才生效,tcp_nopush = on 会设置调用tcp_cork方法,这个也是默认的,结果就是数据包不会马上传送出去,等到数据包最大时,一次性的传输出去,这样有助于解决网络堵塞

    ** 启用gzip **
    gzip on;

    ** 隐藏版本信息 **
    在http { - }里加上server_tokens off;

    相关文章

      网友评论

        本文标题:nginx常用优化参数

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