Nginx配置优化参考
摘要:本文档描述了Nginx性能测试过程中,发现的可优化性能的配置项。主要包含系统参数,以及Nginx本身配置。本文可以作为后续上线以及维护过程中的参考文档。 1、 nofile 系统打开的文件数约束。 Linux服务器必须修改这个值才能满足Nginx的要求。建议修改为102400或者更大。 修改文件 /etc/security/limits.conf 默认值 1024 参考配置 * soft nofile 102400 * hard nofile 102400 2、 net.ipv4.ip_local_port_range 本地端口使用范围,在Ng
- 1、 nofile
- 2、 net.ipv4.ip_local_port_range
- 3、 其它sysctl.conf配置
- 4、 worker_processes
- 5、 worker_cpu_affinity
[显示全部]
本文档描述了Nginx性能测试过程中,发现的可优化性能的配置项。主要包含系统参数,以及Nginx本身配置。本文可以作为后续上线以及维护过程中的参考文档。
系统打开的文件数约束。 Linux服务器必须修改这个值才能满足Nginx的要求。建议修改为102400或者更大。
修改文件 |
/etc/security/limits.conf |
默认值 |
1024 |
参考配置 |
* soft nofile 102400 * hard nofile 102400 |
本地端口使用范围,在Nginx作为web服务器时这个参数可以忽略,但作为反向代理服务器必须修改为更大范围,高并发时可以大幅度提升Nginx性能。
修改文件 |
/etc/sysctl.conf |
默认值 |
32768 61000 |
参考配置 |
net.ipv4.ip_local_port_range = 1024 65000 |
修改文件 |
/etc/sysctl.conf |
参考配置 |
net.core.somaxconn = 2048 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_fin_timeout = 15 net.ipv4.tcp_max_tw_buckets = 10000 net.ipv4.ip_local_port_range = 1024 65000 fs.file-max = 102400 #与nofile保持一致 net.ipv4.tcp_mem = 1048576 1310720 1572864 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 87380 16777216 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_synack_retries = 3 net.ipv4.tcp_syn_retries = 3 net.ipv4.tcp_max_syn_backlog=8192 |
使用/sbin/sysctl -p来做配置刷新 |
Nginx工作进程数,经过测试以及官方的建议最好配置为与CPU核数目相等,或者auto。
修改文件 |
nginx.conf |
官方说明 |
http://nginx.org/en/docs/ngx_core_module.html#worker_processes |
参考配置 |
worker_processes 8; |
绑定Nginx工作进程到CPU核,可以使CPU负载更加均衡稳定。配置值与worker_processes以及CPU核数目有关。配置1对应绑定的核。
修改文件 |
nginx.conf |
官方说明 |
http://nginx.org/en/docs/ngx_core_module.html#worker_cpu_affinity |
参考配置 |
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; |
Nginx工作进程能打开的文件句柄数目,建议与nofile一致。
修改文件 |
nginx.conf |
官方说明 |
http://nginx.org/en/docs/ngx_core_module.html#worker_rlimit_nofile |
参考配置 |
worker_rlimit_nofile 102400; |
Nginx工作进程能同时打开的链接数目,建议与worker_rlimit_nofile一致。
修改文件 |
nginx.conf |
官方说明 |
http://nginx.org/en/docs/ngx_core_module.html#worker_connections |
参考配置 |
worker_connections 102400; |
Nginx访问日志,一般情况下建议关闭,如果不能关闭就配置缓存可以大幅度提升IO性能。
修改文件 |
nginx.conf |
官方说明 |
http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log |
参考配置 |
|
Nginx作为反向代理服务器时,upstream设置keepalive可以大幅度提升代理性能。如果是HTTP服务需要同时配置upstream和location。
修改文件 |
nginx.conf |
官方说明 |
http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive |
参考配置 |
upstream http_backend { server 127.0.0.1:8080; keepalive 32; } server { ... location /http/ { proxy_pass http://http_backend; proxy_http_version 1.1; proxy_set_header Connection ""; ... } } |
Nginx反向代理的服务需要会话保持功能,在real-server个数变化的时候影响尽可能小,可以配置一致性哈希。
修改文件 |
nginx.conf |
官方说明 |
http://nginx.org/en/docs/http/ngx_http_upstream_module.html#hash |
参考配置 |
upstream ngx-backend-normal { server 10.151.161.130:8080; server 10.151.161.131:8080; keepalive 32; hash $remote_addr consistent; } |
Nginx配置优化参考的更多相关文章
- nginx 配置优化的几个参数
nginx 配置优化的几个参数 2011-04-22 本文地址: http://blog.phpbean.com/a.cn/7/ --水平有限欢迎指正-- -- 最近在服务器上搞了一些nginx 研究 ...
- Nginx性能优化参考
nginx性能优化参考 1)调整配置文件中的配置项的值(配置文件:nginx.conf) worker_processes auto;开启的进程数,一般配置为跟逻辑CPU核数一样worker_rlim ...
- Nginx配置优化详解
如果你已经安装过Nginx并在生产环境中使用,那么Nginx配置优化你一定也要做,这样才能看到Nginx性能,本文就从基本配置优化开始到高层配置教你如何优化Nginx 大多数的Nginx安装指南告诉你 ...
- nginx配置优化提高并发量
1 nginx配置优化提高并发量 worker_processes 2; 这个按照CPU的核数来决定 2 worker_connections 65535; 这个一般设置65535即可 每个进程允许的 ...
- Nginx配置优化及深入讲解,大家可以听一下
随着访问量的不断增加,需要对Nginx和内核做相应的优化来满足高并发用户的访问,那下面在单台Nginx服务器来优化相关参数. 1) Nginx.conf配置优化: worker_proce ...
- nginx配置优化 第二章
一:常用功能优化: 1:网络连接的优化: 只能在events模块设置,用于防止在同一一个时刻只有一个请求的情况下,出现多个睡眠进程会被唤醒但只能有一个进程可获得请求的尴尬,如果不优化,在多进程的ngi ...
- Nginx配置优化
Nginx优化: 并发优化 KeepAlive长连接 压缩优化 配置缓存 两个监控工具: nginx_status:并发统计 Ngxtop:请求统计 Nginx配置并发.长连接.压缩.状态监控: 关闭 ...
- nginx配置优化+负载均衡+动静分离详解
nginx配置如下: #指定nginx进程运行用户以及用户组user www www;#nginx要开启的进程数为8worker_processes 8;#全局错误日志文件#debug输出日志最为详细 ...
- nginx 配置优化的几个参数(转)
nginx配置文件里面需要注意的一些参数 worker_processes 8 nginx要开启的进程数 一般等于cpu的总核数 其实一般情况下开4个或8个就可 我开2个 以了 多了没有太多用每个n ...
随机推荐
- SharePoint 站点导航Web部件
SharePoint 站点导航Web部件 SharePoint 站点导航Web部件可以以树状图显示站点层级关系.便于管理. 效果:点击子网站能够跳转过去.我这里建的少. ...
- 【TP3.2 + 其他任何PHP框架】编辑、删除、添加数据,返回原分页 (ajax+form两种方式提交均可以)
1.目的1:在如下的一个页面中,p=2,比如我们删除数据id=13,通过ajax提交{id,p} 这2个参数,就可以了,页面返回json的url参数中原样带上p即可. 2.目的2: 步骤1:在如下页面 ...
- ios中NSObject分类(2)
#import <Foundation/Foundation.h> UIColor * rgb(int r, int g, int b); UIColor * rgbA(int r, in ...
- 禁止logback输出状态信息
一.问题描述 22:18:07,299 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resourc ...
- lnmp+zabbix 3.2 的编译安装
yum install pcre* gcc gcc-c++ autoconf automake zlib libxml libjpeg freetype libpng gd curl zlib-dev ...
- php自动获取字符串编码函数mb_detect_encoding(转)
使用 mb_detect_encoding() 函数来判断字符串是什么编码的. 当在php中使用mb_detect_encoding函数进行编码识别时,很多人都碰到过识别编码有误的问题,例如对与GB2 ...
- PWA 入门: 写个非常简单的 PWA 页面
Progressive Web Apps 是 Google 提出的用前沿的 Web 技术为网页提供 App 般使用体验的一系列方案. 这篇文章里我们来完成一个非常简单的 PWA 页面. 一个 PWA ...
- appium简明教程(8)——那些工具
那片笑声让我想起我的那些tool 在我生命每个角落静静为我开着 我曾以为我会永远守在她身旁 今天我们已经离去在人海茫茫 她们都老了吧 都更新换代了吧 幸运的是我曾陪她们开发 啦…… 想她 啦…… 她还 ...
- appium简明教程(4)——appium client的安装
appium client是对webdriver原生api的一些扩展和封装.它可以帮助我们更容易的写出用例,写出更好懂的用例. appium client是配合原生的webdriver来使用的,因此二 ...
- Fiddler高级用法-抓取手机app数据包
在上一篇中介绍了Fiddler的基本使用方法.通过上一篇的操作我们可以直接抓取浏览器的数据包.但在APP测试中,我们需要抓取手机APP上的数据包,应该怎么操作呢? Andriod配置方法 1)确保手机 ...