安装完成 Nginx 后,便可直接使用了,但如果修改其中一些默认配置,会使得服务器的性能更加优化

操作环境:nginx 1.8.0

打开 Nginx 的默认配置文件:

1
vim /etc/nginx/nginx.conf

修改 http 区域,注释或删除默认配置,新增:

1
2
3
4
server_tokens	off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
  • server_tokens:是否在错误页面中显示 nginx 版本数字,关闭保证了安全性
  • sendfile:开启 sendfile(),可以在磁盘和TCP Socket之间互相拷贝数据,sendfile() 是立即将数据从磁盘读到OS缓存。因为这种拷贝是在内核完成的,sendfile() 要比组合 read() 和 write() 以及打开关闭丢弃缓冲更加有效
  • tcp_nopush:让 nginx 在一个数据包里发送所有头文件,而不一个接一个的发送
  • tcp_nodelay:作用于 socket 参数 TCP_NODELAY,因为 nginx 默认会它将要发送的数据存放在缓存里,当积累到一定量或一定时间,再将它们发送出去。所以设置 tcp_nodelay 即不缓存数据,小段数据也直接发送

关闭日志存储,减少磁盘空间占用,减少IO操作:

1
access_log off;

设置默认:

1
2
default_type text/html; 
charset UTF-8;
  • default_type:文件使用的默认的 MIME-type
  • charset:头文件中的默认的字符集

设置超时:

1
2
3
4
5
keepalive_timeout 10;
client_header_timeout 10;
client_body_timeout 10;
reset_timedout_connection on;
send_timeout 10;
  • keepalive_timeout:客户端 keep-alive 超时时间,超时将关闭链接
  • client_header_timeout:请求头超时时间
  • client_body_timeout:请求体的超时时间
  • reset_timeout_connection:让 nginx 关闭不响应的客户端连接,释放该客户端所占有的内存空间
  • send_timeout:指定客户端的响应超时时间。这个设置不会用于整个转发器,而是在两次客户端读取操作之间。如果在这段时间内,客户端没有读取任何数据,nginx 就会关闭连接

设置连接:

1
2
limit_conn_zone $binary_remote_addr zone=addr:5m;
limit_conn addr 100;
  • limit_conn_zone:设置用于保存各种key(比如当前连接数)的共享内存的参数。5m就是5兆字节,这个值应该被设置的足够大以存储(32K*5)32byte状态或者(16K*5)64byte状态
  • limit_conn:为给定的key设置最大连接数。这里key是addr,我们设置的值是100,也就是说我们允许每一个IP地址最多同时打开有100个连接

设置压缩:

1
2
3
4
5
6
gzip on; 
gzip_disable "msie6";
gzip_proxied any;
gzip_min_length 1000;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
  • gzip:设置 nginx 采用 gzip 压缩的形式发送数据,这将会减少我们发送的数据量
  • gzip_disable:为指定的客户端禁用gzip功能,设置成IE6或者更低版本以使其兼容
  • gzip_proxied:允许或者禁止压缩基于请求和响应的响应流,设置为 any 压缩所有的请求
  • gzip_min_length:设置对数据启用压缩的最少字节数,如果一个请求小于1000字节,我们最好不要压缩它,因为压缩这些小的数据会降低处理此请求的所有进程的速度
  • gzip_comp_level:设置数据的压缩等级,区间1-9,9压缩比最大但速度慢,所以设置6即可
  • gzip_type:设置需要压缩的数据格式

设置文件缓存:

1
2
3
4
open_file_cache max=100000 inactive=20s; 
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
  • open_file_cache:打开缓存的同时也指定了缓存最大数目,以及缓存的时间。我们可以设置一个相对高的最大时间,这样我们可以在它们不活动超过20秒后清除掉
  • open_file_cache_valid:在open_file_cache中指定检测正确信息的间隔时间
  • open_file_cache_min_uses:定义了open_file_cache中指令参数不活动时间期间里最小的文件数
  • open_file_cache_errors:指定了当搜索一个文件时是否缓存错误信息

所有优化设置完毕,按自己的需求选择添加,保存文件后重启 nginx:

1
service nginx restart

优化设置来源于网络,本文仅作备忘记录,转载须注明来源