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. Easyui入门视频教程 第02集--- ASP.NET MVC下 搭建 EasyUI环境

    Easyui入门视频教程 第02集--- ASP.NET MVC下 搭建 EasyUI环境 目录 ----------------------- Easyui入门视频教程 第09集---登录完善 图标 ...

  2. HDU 4648 Magic Pen 6 (。。。。。。。。。。)

    Magic Pen 6 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total ...

  3. 【SqlServer】SQL Server的常用函数

    字符串函数 SubString():用于截取指定字符串的方法.该方法有三个参数:参数1:用于指定要操作的字符串.参数2:用于指定要截取的字符串的起始位置,起始值为 1 .参数3:用于指定要截取的长度. ...

  4. 【JavaScript】浅析ajax的使用

    目录结构: contents structure [+] Ajax简介 Ajax的工作原理 Ajax的使用步骤 使用原生的js代码 使用JQuery代码 JQuery中常用的Ajax函数 $.ajax ...

  5. 【JavaScript】浅析IIFE(立即执行函数表达式)的作用

    什么是IIFE IIFE就是立即执行函数表达式(Immediately-Invoked Function Expression) 为什么需要IIFE 应用IIFE有两个比较经典的使用场景, 第一就是在 ...

  6. python selenium expected_conditions使用实例

    今天正好虫师问到selenium python binding中support.expected_conditions的用法,顺手总结了一下,希望对大家有所帮助. 场景 Expected Condit ...

  7. Javascript MVC 学习笔记(一) 模型和数据

    写在前面 近期在看<MVC的Javascript富应用开发>一书.本来是抱着一口气读完的想法去看的.结果才看了一点就傻眼了:太多不懂的地方了. 仅仅好看一点查一点,一点一点往下看吧,进度虽 ...

  8. Arduino智能小车--仅仅是随便一搞

    在某宝宝买的智能小车,挺精致的,开心的连接上打印机的线,结果port都没有反应, 查了一下发现是少了驱动,博主用的mac os10.12.3 CH34x_Install_V1.4.pkg 安装好之后我 ...

  9. Java多线程框架Executor详解

       原文链接  http://www.imooc.com/article/14377 为什么引入Executor线程池框架new Thread()的缺点 每次new Thread()耗费性能调用ne ...

  10. Ajax接收并显示后台传来的list集合内的数据信息

    最近在学习Ajax做一个留言系统的时候碰到需要将list集合从后台传到前台ajax接收并显示的情况,在网上搜了很多,但很多情况都不是和我遇见的情况一样的,现在,直接贴出我的问题及解决方法. 后台代码: ...