当前位置首页 > Nginx知识

Nginx配置优化参考

阅读次数:322 次  来源:admin  发布时间:

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本身配置。本文可以作为后续上线以及维护过程中的参考文档。

[ 编辑本段 ]                                                [ 回目录 ]1、      nofile

系统打开的文件数约束。 Linux服务器必须修改这个值才能满足Nginx的要求。建议修改为102400或者更大。

修改文件

/etc/security/limits.conf

默认值

1024

参考配置

* soft nofile 102400

* hard nofile 102400

[ 编辑本段 ]                                                [ 回目录 ]2、      net.ipv4.ip_local_port_range

本地端口使用范围,在Nginx作为web服务器时这个参数可以忽略,但作为反向代理服务器必须修改为更大范围,高并发时可以大幅度提升Nginx性能。

修改文件

/etc/sysctl.conf

默认值

32768 61000

参考配置

et.ipv4.ip_local_port_range   = 1024 65000

[ 编辑本段 ]                                                [ 回目录 ]3、      其它sysctl.conf配置

修改文件

/etc/sysctl.conf

参考配置

et.core.somaxconn = 2048

et.ipv4.tcp_syncookies = 1

et.ipv4.tcp_tw_reuse = 1

et.ipv4.tcp_tw_recycle = 1

et.ipv4.tcp_timestamps = 0

et.ipv4.tcp_fin_timeout =   15

et.ipv4.tcp_max_tw_buckets   = 10000

et.ipv4.ip_local_port_range   = 1024 65000

fs.file-max = 102400 #与nofile保持一致

et.ipv4.tcp_mem =   1048576  1310720 1572864

et.ipv4.tcp_rmem =  4096 87380 16777216

et.ipv4.tcp_wmem =  4096 87380 16777216

et.core.rmem_max = 16777216

et.core.wmem_max =   16777216

et.ipv4.tcp_synack_retries   = 3

et.ipv4.tcp_syn_retries =   3

et.ipv4.tcp_max_syn_backlog=8192

使用/sbin/sysctl -p来做配置刷新                                                                                     [ 编辑本段 ]                                                [ 回目录 ]4、      worker_processe

Nginx工作进程数,经过测试以及官方的建议最好配置为与CPU核数目相等,或者auto。

修改文件

ginx.conf

官方说明

http://nginx.org/en/docs/ngx_core_module.html#worker_processe

参考配置

worker_processes 8

[ 编辑本段 ]                                                [ 回目录 ]5、      worker_cpu_affinity

绑定Nginx工作进程到CPU核,可以使CPU负载更加均衡稳定。配置值与worker_processes以及CPU核数目有关。配置1对应绑定的核。

修改文件

ginx.conf

官方说明

http://nginx.org/en/docs/ngx_core_module.html#worker_cpu_affinity

参考配置

worker_cpu_affinity   00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000

[ 编辑本段 ]                                                [ 回目录 ]6、      worker_rlimit_nofile

Nginx工作进程能打开的文件句柄数目,建议与nofile一致。

修改文件

ginx.conf

官方说明

http://nginx.org/en/docs/ngx_core_module.html#worker_rlimit_nofile

参考配置

worker_rlimit_nofile 102400

[ 编辑本段 ]                                                [ 回目录 ]7、      worker_connectio

Nginx工作进程能同时打开的链接数目,建议与worker_rlimit_nofile一致。

修改文件

ginx.conf

官方说明

http://nginx.org/en/docs/ngx_core_module.html#worker_connectio

参考配置

worker_connections 102400

[ 编辑本段 ]                                                [ 回目录 ]8、      access_log

Nginx访问日志,一般情况下建议关闭,如果不能关闭就配置缓存可以大幅度提升IO性能。

修改文件

ginx.conf

官方说明

http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log

参考配置

access_log off;   access_log   /pathto/access.log main buffer=128k flush=2m;                                                                                     [ 编辑本段 ]                                                [ 回目录 ]9、      keepalive

Nginx作为反向代理服务器时,upstream设置keepalive可以大幅度提升代理性能。如果是HTTP服务需要同时配置upstream和location。

修改文件

ginx.conf

官方说明

http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive

参考配置

upstream http_backend {

erver 127.0.0.1:8080

keepalive 32

}

erver {

...

location /http/ {

roxy_pass http://http_backend

roxy_http_version 1.1

roxy_set_header Connection   ""

...

}

}

[ 编辑本段 ]                                                [ 回目录 ]10、 hash consistent

Nginx反向代理的服务需要会话保持功能,在real-server个数变化的时候影响尽可能小,可以配置一致性哈希。

修改文件

ginx.conf

官方说明

http://nginx.org/en/docs/http/ngx_http_upstream_module.html#hash

参考配置

upstream ngx-backend-normal   {

erver 10.151.161.130:8080

erver 10.151.161.131:8080

keepalive 32

hash $remote_addr consistent

}

上一篇:网站如何启用SSL安全证书?IIS7启用新建Https:/
下一篇:CentOS7上Docker安装与卸载