Nginx的优化调整方面

1 、网络层面

带宽

带宽对Nginx性能的影响是最为直接的,就算如何独享10M的带宽也肯定不如100M带宽下Nginx的性能。另外,现在大部分公司的网站都拥有多个二级域名在提供服务,而这多个二级域名通常是共享一个出口带宽的,这样就造成Nginx来提供服务时,资源会受干扰。

网络质量

在中国的互联网中,网络质量跟国外是没法比的,经常出现的情况是客户端到Nginx服务端总是会经过好几个路由,但凡其中任何一个路由节点出现问题,会影响最终Nginx服务端的各种性能问题,例如数据重传、数据超时等

Nginx 直连交换机收敛比

交换机收敛比通常指交换机接服务器的下行流量跟交换机上行链路的比例,一般中型及中小型公司对IDC业务网络没有过多的规划,导致交换机收敛比通常是大于1的,也就意味着数据在交换机中是阻塞型转发,会影响Nginx的数据转发,尤其是作为反向代理时的影响更大。

Nginx 架构中网络部署方式

大部分互联网公司通常会采用如下结构的网络:

这种结构对比互联网公司而言,请求需要经过路由器、防火墙、IDS/IPS等好几层的设备最终才能由业务服务器来响应请求,这期间请求没经过一层都需要消耗一定的时间,通过累计这个时间就会被放大,而且防火墙的性能直接决定了Nginx可以承载的请求数。所以迫不得已要用防火墙的话,请使用30万以上的防火墙来做,几万的防火墙性能其实达不到业务需求的。

2 、服务器硬件层面

CPU

Nginx 的工作模型是master-worker方式,简单来说,越多的worker也就意味着越多的承载力,CPU的核心数从某种程度来说决定了Nginx最佳的worker工作数量。

内存

内存的容量直接决定了Nginx可承载的最大连接数。

硬盘

Nginx 的使用过程中,容易产生IO的地方还是挺多的,比如各种临时文件、错误日志、访问日志、缓存等。而硬盘的传输速度可以影响到这些产生的IO,比如硬盘的转速、硬盘的容量、硬盘的输出带宽等。

网卡

这里以戴尔服务器举例,戴尔服务器默认配置的网卡为Broadcom的,这种网卡一般使用没问题,但遇上Nginx在处理大量小包的情况下,默认配置的网卡就会发生严重丢包的事情,内核层面的丢包会造成大量的数据重传从而影响整个Nginx服务器的性能。所以对于Nginx而言需要选择合适的网卡。

3 、操作系统层面

/etc/sysctl.conf 的配置

很多时候大部分的运维都是从网上复制粘贴sysctl.conf的配置,对于其中一些value的配置都是没有任何依据,所以容易被出现的各种TCP状态而担心。而这些抄来的配置也从根本上影响着Nginx的运行。

系统资源限制

这里的资源限制主要指文件句柄数的限制,文件句柄数的多少限制了Nginx可以支持的最大连接数,不合理的配置会造成Nginx出现大量的500、502错误。

IRQ Balance 服务

关于IRQ Balance服务,初衷是为了更好地利用CPU的资源来处理事务,但很多场景下,包括Nginx的应用,这个服务并不能起到利好的作用,反而会引起中断的不平衡造成Nginx性能下降。

系统开放多余的端口

严格来说,这种情况发生的几率还是比较低的。一般没有做运维标准化的公司,在服务器安装系统时,默认就会开启很多的服务,比如sendmail、postfix、ntpd、bind等等,这些服务一般监听在所有的IP上,也就意味着Nginx部署在这种环境下,一旦有恶意攻击者攻击非Nginx的端口,就会造成整个服务器资源被耗尽(DDoS的典型症状),从而让Nginx失去服务能力。

4 、Nginx层面

编译进业务不需要的模块

有很多运维对于Nginx的安装大部分都是用yum或者apt-get进行安装,这种安装基本上都会把一些不需要的模块编译进去,在Nginx提供高并发时多少还是要消耗一定的内存资源,前面我们说了内存直接决定了Nginx能够承载多少连接的能力。

糟糕的配置

很多人发挥不了Nginx的性能,主要原因就是对Nginx的配置不熟悉,对于Nginx的参数指令不了解,所以各种各样的配置五花八门,这里实在没法一一列举,详情可以参看度娘,一搜一大片。

缓存使用不合理

Nginx 的缓存,本意是为了提升Nginx的处理能力,降低上游服务器的压力,而大部分运维也是从网上抄,于是带来的结果就是缓存的不合理配置造成响应延时过高、缓存清理麻烦等问题。

5 、上游服务器层面

Nginx 在大部分的应用场景要么是通过http协议来反向代理上游服务器,要么是通过fastcgi协议来代理php应用,这两类应用也是会对Nginx自身的性能带来影响的。

PHP 应用

当前一般都是使用PHP-FPM来提供fastcgi协议的接入,PHP的版本以及PHP-FPM的配置都会造成Nginx反代php-fpm时,容易发生502、504的错误。

Java 应用

一般用于Java应用都逃不过Tomcat、jetty、resin,如果出现容器本身配置不合理、JVM不优化、Java容器选择不合理,将直接影响Nginx做反代时的并发能力。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29371470/viewspace-2222119/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29371470/viewspace-2222119/

安全狗linux版是为Linux服务器开发的一款服务器管理软件,全面支持apache和nginx防护。具有DDOS攻击防护、CC攻击防护、Ftp/SSH防暴力破解、SSH远程登录保护、网站漏洞防护、url地址全检测、防盗链、网站特定资源保护、IP黑白名单等功能,全方位防护服务器安全和网站安全。 并支持云端设置。通过安全狗服云平台,可以对DDOS攻击防护、CC攻击防护等功能进行操作设置,无需通过linux系统操作,与传统的linux字符界面相比,Web界面更易懂更易操作。 安全狗linux版功能简介 1)CC攻击防护 CC攻击防护基本原理是防止一个IP多次不断刷新而断开与该IP的连接,防止服务器瘫痪,达到了防攻击目的。当有用户的访问违反了您设定的规则,服务器会阻止访问并返回您所设定的提示信息。 2)网站资源防盗链 本软件通过Reference技术和Session技术解决防盗链问题。Reference技术通常用于图片、mp3等资源这种容易被人用html嵌入到其他网站资源的资源。Session技术一般只用于论坛和社区网站。 3)网站特定资源防下载 网站特定资源保护通过对某些特定资源的设置来确保它们不被下载或盗用,您填写的路径(Path)和保护资源类型(Resource)中只要客户端的访问条件满足其中一种都会被拦截通过。 4)SQL防注入 根据攻击特征库,对用户输入进行过滤,从而达到防护SQL注入的目的。此功能中用户可以根据实际需要对过滤规则进行新增、修改、删除。 5)IP黑白名单 可自由设置允许或者不允许访问网站的IP列表,支持跨网段的IP设置。 6)防护日志 方便查找攻击来源,杜绝非法访问。 网站安全狗Linux-Nginx v2.4.2更新日志 新增HTTP头部字段检测、新增多个第三方模块支持,防护更全面! 1、新增HTTP头部全字段检测功能; 2、新增对lua-nginx-module-master模块支持; 3、新增对nginx_upstream_check_module-master 模块支持; 4、新增对nginx-backtrace-master 模块支持; 5、新增对ngx_http_accounting_module-master模块支持; 6、新增对3th_module/testcookie-nginx-module-master模块支持; 7、修复自动更新防护规则时,可能出的现规则无法自动加载问题; 8、修复特殊情况下,启用网马扫描功能出现进程卡死问题; 网站安全狗Linux-Nginx v2.4.2版更新日志 全面支持Nginx 1.10,后台防护功能优化 1. 全面支持Nginx 1.10版本。 2. 后台防护功能进一步优化。 3. 页面过滤默认关闭。 4. 解决网站安全狗(linux版)官方模板自动变更还原问题。 网站安全狗Linux-Nginx版截图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值