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

本文档描述了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

参考配置

net.ipv4.ip_local_port_range   = 1024 65000

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

修改文件

/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来做配置刷新
                                                                    [ 编辑本段 ]                                                 [ 回目录 ]4、      worker_processes   

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

修改文件

nginx.conf

官方说明

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

参考配置

worker_processes 8;

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

绑定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;

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

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

修改文件

nginx.conf

官方说明

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

参考配置

worker_rlimit_nofile 102400;

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

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

修改文件

nginx.conf

官方说明

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

参考配置

worker_connections 102400;

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

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

修改文件

nginx.conf

官方说明

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

参考配置

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

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   "";

...

}

}

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

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配置优化参考的更多相关文章

  1. nginx 配置优化的几个参数

    nginx 配置优化的几个参数 2011-04-22 本文地址: http://blog.phpbean.com/a.cn/7/ --水平有限欢迎指正-- -- 最近在服务器上搞了一些nginx 研究 ...

  2. Nginx性能优化参考

    nginx性能优化参考 1)调整配置文件中的配置项的值(配置文件:nginx.conf) worker_processes auto;开启的进程数,一般配置为跟逻辑CPU核数一样worker_rlim ...

  3. Nginx配置优化详解

    如果你已经安装过Nginx并在生产环境中使用,那么Nginx配置优化你一定也要做,这样才能看到Nginx性能,本文就从基本配置优化开始到高层配置教你如何优化Nginx 大多数的Nginx安装指南告诉你 ...

  4. nginx配置优化提高并发量

    1 nginx配置优化提高并发量 worker_processes 2; 这个按照CPU的核数来决定 2 worker_connections 65535; 这个一般设置65535即可 每个进程允许的 ...

  5. Nginx配置优化及深入讲解,大家可以听一下

    随着访问量的不断增加,需要对Nginx和内核做相应的优化来满足高并发用户的访问,那下面在单台Nginx服务器来优化相关参数. 1)       Nginx.conf配置优化: worker_proce ...

  6. nginx配置优化 第二章

    一:常用功能优化: 1:网络连接的优化: 只能在events模块设置,用于防止在同一一个时刻只有一个请求的情况下,出现多个睡眠进程会被唤醒但只能有一个进程可获得请求的尴尬,如果不优化,在多进程的ngi ...

  7. Nginx配置优化

    Nginx优化: 并发优化 KeepAlive长连接 压缩优化 配置缓存 两个监控工具: nginx_status:并发统计 Ngxtop:请求统计 Nginx配置并发.长连接.压缩.状态监控: 关闭 ...

  8. nginx配置优化+负载均衡+动静分离详解

    nginx配置如下: #指定nginx进程运行用户以及用户组user www www;#nginx要开启的进程数为8worker_processes 8;#全局错误日志文件#debug输出日志最为详细 ...

  9. nginx 配置优化的几个参数(转)

    nginx配置文件里面需要注意的一些参数 worker_processes 8  nginx要开启的进程数 一般等于cpu的总核数 其实一般情况下开4个或8个就可 我开2个 以了 多了没有太多用每个n ...

随机推荐

  1. SharePoint 站点导航Web部件

    SharePoint 站点导航Web部件         SharePoint 站点导航Web部件可以以树状图显示站点层级关系.便于管理.         效果:点击子网站能够跳转过去.我这里建的少. ...

  2. 【TP3.2 + 其他任何PHP框架】编辑、删除、添加数据,返回原分页 (ajax+form两种方式提交均可以)

    1.目的1:在如下的一个页面中,p=2,比如我们删除数据id=13,通过ajax提交{id,p} 这2个参数,就可以了,页面返回json的url参数中原样带上p即可. 2.目的2: 步骤1:在如下页面 ...

  3. ios中NSObject分类(2)

    #import <Foundation/Foundation.h> UIColor * rgb(int r, int g, int b); UIColor * rgbA(int r, in ...

  4. 禁止logback输出状态信息

    一.问题描述 22:18:07,299 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resourc ...

  5. lnmp+zabbix 3.2 的编译安装

    yum install pcre* gcc gcc-c++ autoconf automake zlib libxml libjpeg freetype libpng gd curl zlib-dev ...

  6. php自动获取字符串编码函数mb_detect_encoding(转)

    使用 mb_detect_encoding() 函数来判断字符串是什么编码的. 当在php中使用mb_detect_encoding函数进行编码识别时,很多人都碰到过识别编码有误的问题,例如对与GB2 ...

  7. PWA 入门: 写个非常简单的 PWA 页面

    Progressive Web Apps 是 Google 提出的用前沿的 Web 技术为网页提供 App 般使用体验的一系列方案. 这篇文章里我们来完成一个非常简单的 PWA 页面. 一个 PWA ...

  8. appium简明教程(8)——那些工具

    那片笑声让我想起我的那些tool 在我生命每个角落静静为我开着 我曾以为我会永远守在她身旁 今天我们已经离去在人海茫茫 她们都老了吧 都更新换代了吧 幸运的是我曾陪她们开发 啦…… 想她 啦…… 她还 ...

  9. appium简明教程(4)——appium client的安装

    appium client是对webdriver原生api的一些扩展和封装.它可以帮助我们更容易的写出用例,写出更好懂的用例. appium client是配合原生的webdriver来使用的,因此二 ...

  10. Fiddler高级用法-抓取手机app数据包

    在上一篇中介绍了Fiddler的基本使用方法.通过上一篇的操作我们可以直接抓取浏览器的数据包.但在APP测试中,我们需要抓取手机APP上的数据包,应该怎么操作呢? Andriod配置方法 1)确保手机 ...