nginx性能优化

1.优化nginx服务的work进程数

worker_processes  2;  #一般和核数相当

根据cpu的颗数和核数;

[root@card-web03 ]# grep processor /proc/cpuinfo |wc -l
2   #<==表示1颗cpu2核

[root@card-web03 # grep 'physical id' /proc/cpuinfo |sort|uniq|wc -l
2   #<==对phycical去重计数,表示2颗cpu

2.优化绑定不同的nginx进程到不同的cpu上

默认情况下nginx的多个进程有可能跑在一个或者一核的cpu上,导致nginx进程使用硬件的资源不均,使之充分有效的利用硬件的多cpu多核资源的目的 

四核配置如下:

worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;

八核配置:

worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
worker_cpu_affinity 0001 0010 0100 1000 0001 0010 0100 1000;

3,数据模型

events{
use epoll;
}

#异步

4.调整nginx单个进程最大连接数

worker_connections  2048;    #wvent

5.单个进程允许最大文件打开数

worker_rlimit_nofile 65535;    #主标签段

6. 开启高效文件传输模式

设置参数 sendfile on,防止网络磁盘I/O阻塞;

sendfile        on;   #copy 函数

7. 设置连接超时时间

    作用:

将无用链接尽快超时,保护服务器资源

当链接很多时,及时断掉那些已经建立好的但又长时间没反应的链接,以减少其占用的服务器资源,因为服务器维护链接也是消耗资源

恶意攻击网站,就会不断和服务器建立多个链接,消耗连接数,但是啥也不干,只是持续建立链接,这就会大量消耗服务器的资源,

keepalive_timeout 120;   #http server location 

作用:keep-alive可以使客户端到服务器端已经建立的链接一直工作不退出,当服务器有持续请求时,keep-alive会使用正在建立的链接提供服务,从而避免服务器重新建立新链接处理请求

2. tcp_nodela

tcp_nodelay on; #开启参数

context: http , server, location #表前段

作用: 默认情况下数据发送时,内核并不会马上发送,可能会等待更多的字节组成一个数据包,这样可以提高I/O性能,但是,在每次只发送很少字节的业务场景,使用tcp_nodelay功能。等待时间会比较常

3. client_header_timerout 

client_header_timeout 60s;  #参数默认大小

context: http, server  #可以放置的标签段

作用: 

设置读取客户端请求头数据的超时时间。如果超过这个时间,客户端还没有发送完整的header数据,服务端将返回"Request time out (408)"错误,此处的知识原

4. client_body_timeout

client_body_timeout time;

context: http,server,location #放置标签段

作用:

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值