nginx参数优化杂记-阿里云开发者社区

开发者社区> test56> 正文

nginx参数优化杂记

简介:
+关注继续查看
1.隐藏nginx软件版本号信息
5b9eb163e8a6fd561a29fa55c56c3abd31cef043
暴露了软件版本号,恶意用户可能根据版本漏洞进行攻击,隐藏版本号可以加强Web服务的安全性。

vim /usr/local/nginx/nginx.conf
http
{
server_tokens off; ###添加这一行
......
}
作用:控制http response header内的web版本信息的显示,以及错误信息中web服务版本信息的显示。
重新加载nginx服务 /usr/local/sbin/nginx -s reload
b1d2ed955c3b4b7cbdb64621edd5c6a8f54ddc3e


参数性能优化:
1.进程数优化
worker_processes 1;
指定nginx服务开启时,开启的进程数。nginx有一个master进程,多个worker进程,最开始设置可以等于CPU的核数(官方建议);当高流量高并发场合时可以考虑修改为CPU核数*2。(不设置参数,默认为1)
查看CPU核数:
grep processor /proc/cpuinfo | wc -l
74c6d48cc249f525649e87c639fad4c4b773fc7f
1.1 绑定不同的Nginx进程到不同的CPU上,默认情况下,nginx的多个进程可能跑在某一个CPU或CPU的某一个核上,导致nginx进程使用硬件资源不均衡。
worker_processes 1;
worker_cpu_affinity 0001 0010 0100 1000;
worker_rlimit_nofile 65535;
配置nginx进程和CPU亲和数的参数。可以把不同的进程分给不同的CPU处理。
(默认情况下,进程配置也是相对平均的)

2.事件处理优化
linux下nginx使用epoll的I/O多路复用模型,配置在event下
66835bb1d01999bb9c0099e5d236c56a361b2254
worker_connections,nginx单个进程允许的客户端最大连接数。默认1024,根据具体的服务器性能和程序内存使用量设定。
worker_rlimit_nofile 进程最大打开文件数,无此默认配置。
3.域名散列表配置

49cd442658e70c1ee8bbc7ea036090121e535e3c
尽可能使用确切域名(如nginx.org 和www.nginx.org),降低通配查找时间。每个端口最多关联3个表。

3.高效文件传输模式
1b12e734a7192a9a340bead13ab16292cdb42903
sendfile on;
默认开启该参数,sendfile作用于两个函数之间的文件拷贝,工作在内核上比read和write高效很多,因为read和write是应用层操作。
tcp_nopush on;
这个选项只在sendfile开启时生效,作用:减少网络报文段的数量。(默认不开启)


4.连接超时优化
连接超时作用:
1.将无用连接设置为尽快超时,可以保护服务器系统资源(CPU,内存,磁盘)。
2.当连接很多时,及时断掉已经建立好但又长时间不进行操作的连接。
PHP程序相对于Java程序连接消耗资源和时间较少。
7bb7a765a72d06efdd6f01402437aace7276bc9f
keepalive_timeout 65;
超时连接设置,超过此时间,服务器会关闭该连接。
tcp_nodelay on;
访问量过大情况下开启后可防止网络及I/O阻塞,提升nginx工作效率。参数作用:默认情况下当数据发送时,内核不会马上发送,会等待更多字节组成一个数据包,这样可以提高I/O性能。但是不适用于每次只发送很少字节的业务场景。

client_header_timeout 15;
设置读取客户端请求头数据的超时时间。15为经验值参考。超时用户还没有发送完整的header数据,服务器返回408错误,防止客户端利用http协议进行攻击。

client_body_timeout 60;
客户端请求主体的超时时间,默认值60
send_timeout 25;
指定响应客户端的超时时间,这个超时时间仅限于两个超时活动之间,超时时间内客户端没有接受任何数据,连接将被关闭。

最后,参数的调整要根据业务量业务类型业务需求以及自身的服务器性能综合评定修改

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
mysql参数优化建议
mysql参数优化建议
24 0
架构师细说 NGINX 的配置及优化
最近感觉很多东西在运用到一定的程度之后,会发现原来是自己了解到的不够。一方面限于实际运用到的不多,一方面可能是因为一开始没有进行全面认识。遂这里搜集整理了一番NGINX。
826 0
Linux系统中使用GCC CPU参数优化代码编译
Linux系统中使用GCC CPU参数优化代码编译 使用特定的GCC参数可以使编译出的程序执行效率有较大提升。具体如下: 1、优化原理: 在编译程序时,借助参数传递的方法,使用与系统CPU相匹配的gcc参数,编译出的程序就是为系统CPU而进行特定优化过的,因而执行速度和效率都会是最好。
765 0
Nginx配置性能优化
大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了。而且,在大多数情况下,一个常规安装的Nginx对你的网站来说已经能很好地工作了。
1264 0
+关注
8
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载