nginx常用优化参数

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简介 Nginx是什么 没有听过Nginx?那么一定听过它的“同行”Apache吧!Ngi...
    JokerW阅读 32,849评论 24 1,002
  • 针对IPv4的内核7个参数的配置优化 这里提及的参数是和IPv4网络有关的Linux内核参数。我们可以将这些内核参...
    吃瓜的东阅读 905评论 0 0
  • 《老男孩Linux运维》笔记 隐藏Nginx软件版本号 一般来说,软件的漏洞都和版本有关。因此要尽量隐藏对访问用户...
    Zhang21阅读 3,747评论 0 28
  • 简单安装(通过yum) 1.安装epel-release rpm -ivhhttp://dl.fedoraproj...
    依然饭太稀阅读 2,032评论 0 7
  • You can be happy or you can be unhappy. It's just accordi...
    凤九爷阅读 671评论 0 50