关于Nginx的一些优化

优化Nginx配置


sendfile on
是否启用sendfile()函数,sendfile()函数在一个文件描述符与另一个之间拷贝数据,由于这个拷贝过程是在内核状态下完成,sendfile()函数比read(2)和write(2)函数更加高效,后者需要从用户空间中传送文件

tcp_nopush on
这个指令指定是否使用socket的TCP_NOPUSH(FreeBSD)或TCP_CORK(linux)选项,这个选项只在使用sendfile时有效

tcp_nodelay on
这个指令指定是否使用socket的TCP_NODELAY选项,这个选项只对keep-alive连接有效

gzip on;
指定是否启用gzip压缩

gzip_min_length  1k
设置被压缩的最小请求,单位为bytes。少于这个值大小的请求将不会被压缩,这个值由请求头中的Content-Length字段决定

gzip_buffers     4 16k
指定缓存压缩应答的缓冲区数量和大小,如果不设置,一个缓存区的大小为分页大小,根据环境的不同可能是4k或8k。

gzip_http_version 1.0
是否根据HTTP请求版本来启用gzip压缩

gzip_comp_level 2
指定压缩等级,其值从1到9,1为最小化压缩(处理速度快),9为最大化压缩(处理速度慢)

gzip_types       text/plain application/x-javascript text/css application/xml
为除“text/html”之外的MIME类型启用压缩,“text/html”总是会被压缩。

gzip_vary on;
启用应答头“Vary: Accept-Encoding”
 

worker_processes 4
nginx进程数,建议按照cpu数目来指定, 一般为它的倍数

worker_cpu_affinity 0001 0010 0001 1000
为每个进程分配cpu,上例中将4个进程分配到4个cpu,当然可以写多个,或者将一个进程分配到多个cpu

worker_rlimit_nofile 102400
这个指令是指当一个nginx进程打开的最多文件描述符数目
理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致

ulimit值在(/etc/security/limits.conf)中修改.加入如下两行即可
* soft nofile 102400
* hard nofile 102400

use epoll;
使用epoll的I/O模型,这个不用说了吧

worker_connections 102400;
每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为worker_processes*worker_connections

keepalive_timeout 60
keepalive超时时间

client_header_buffer_size 4k
客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求的头部大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小,分页大小可以用命令getconf PAGESIZE取得

open_file_cache max=102400 inactive=20s
这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存

open_file_cache_valid 30s
这个是指多长时间检查一次缓存的有效信息。

open_file_cache_min_uses 1
open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive时间内一次没被使用,它将被移除

内核参数的优化(/etc/sysctl.conf).修改完文件后,如下命令(/sbin/sysctl -p)使用其生效,并重新启动nginx

net.ipv4.tcp_max_tw_buckets = 6000
timewait的数量,默认是180000

net.ipv4.ip_local_port_range = 1024    65000
允许系统打开的端口范围

net.ipv4.tcp_tw_recycle = 1
启用timewait快速回收

net.ipv4.tcp_tw_reuse = 1
开启重用,允许将TIME-WAIT sockets重新用于新的TCP连接

net.ipv4.tcp_syncookies = 1
开启SYN Cookies,当出现SYN等待队列溢出时,启用cookies来处理

net.core.somaxconn = 262144
web应用中listen函数的backlog默认会给我们内核参数的net.core.somaxconn限制到128,而nginx定义的NGX_LISTEN_BACKLOG默认为511,所以有必要调整这个值

net.core.netdev_max_backlog = 262144
每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

net.ipv4.tcp_max_orphans = 262144
系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,孤儿连接将即刻被复位并打印出警告信息。这个限制仅仅是为了防止简单的DoS攻击,不能过分依靠它或者人为地减小这个值,更应该增加这个值(如果增加了内存之后)。

net.ipv4.tcp_max_syn_backlog = 262144
记录的那些尚未收到客户端确认信息的连接请求的最大值。对于有128M内存的系统而言,缺省值是1024,小内存的系统则是128。

net.ipv4.tcp_timestamps = 0
时间戳可以避免序列号的卷绕。一个1Gbps的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。

net.ipv4.tcp_synack_retries = 1
为了打开对端的连接,内核需要发送一个SYN并附带一个回应前面一个SYN的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK包的数量。

net.ipv4.tcp_syn_retries = 1
在内核放弃建立连接之前发送SYN包的数量。

net.ipv4.tcp_fin_timeout = 1
如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。对端可以出错并永远不关闭连接,甚至意外当机。缺省值是60秒。2.2 内核的通常值是180秒,你可以按这个设置,但要记住的是,即使你的机器是一个轻载的WEB服务器,也有因为大量的死套接字而内存溢出的风险,FIN- WAIT-2的危险性比FIN-WAIT-1要小,因为它最多只能吃掉1.5K内存,但是它们的生存期长些。

net.ipv4.tcp_keepalive_time = 30
当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时

参考了别人的文章–http://www.howtocn.org/nginx:%E9%85%8D%E7%BD%AE%E4%B8%80%E4%B8%AA%E9%AB%98%E6%80%A7%E8%83%BD%E7%9A%84nginx_fastcgi%E6%9C%8D%E5%8A%A1%E5%99%A8

For a true grey suit coming only from black on the light side
porno How to Replace a Casio Watch Battery

Failure to comply will result in removal of post and banning
porno6 True Stories That Will Restore Your Faith in Humanity
What should your top 5 fashion essentials be
casas bahia I suspect that these two features are at best called mediocre

Louis Vuitton is Drawing Graffiti
click jogos Some wonderful beaches such as Patong Beach

Fairfield Inn Suites Buffalo Airport
kinox -4-free process design online training colleges throughout mehserle sentencing

A New Era in Children’s Fashion
gay porn They pick out the ones they like

How to Make Dresses From the 1700s
anime porn I am trying it

Hemlines Soar in New York
free gay porn Then opt for a nice olive

Sony Ericsson XPERIA X1 Steel Silver
how to lose weight fast why then currency opportunities might lagging alerts

lapel pin war has fashion on display
quick weight loss from a sore throat to your STD of choice
gay porn
此条目发表在 网站架构 分类目录。将固定链接加入收藏夹。

评论功能已关闭。