nginx优化之配置文件优化一常用参数
#定义nginx运行的用户和用户组
user www www;
#启动进程,通常设置成和cpu的数量相等
worker_processes 8 ;
#为每个进程分配CPU,上面京8个进程分配到8个cpu,当然可以写多个,或者将一个进程分配到多个CPU
worker_cpu_affinity 00000001 00000100 00001000 00010000 00100000 01000000 10000000;
#该指令是当一个Nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit-n)与nginx进程数相除,但是Nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致
worker_rlimit_nofile 102400;
#全局错误日志
error_log /usr/local/nginx/logs/error.log;
#错误日志定义等级,[debug,info,notice,warn,error,crit]
#pid文件
pid /usr/local/nginx/nginx.pid;
#工作模式及连接数上限
events{
use epoll;
}
#epoll 是多路复用I/O(I/O multipliexing)中的一种方式,但是仅用于linux 2.6以上内核,可以大大提高nginx的性能
#单个后台worker_process进程的最大并发连接数(最大连接数=连接数*进程数)
worker_connections 102400;
#尽可能多地接受请求
multi——accept on;
#设定http服务器,利用他的反向代理功能提供负载均衡
http{
include mime.types;
default_type application/octet-stream;
}
#设定日志格式
access_log /usr/local/nginx/log/nginx/access.log;
#sedfile指定nginx是否调用sendfile函数(zero copy方式)来输出文件,对于普通应用必须为on
#如果用来进行下载登用用磁盘I/O重负载应用,可设置为of,来平衡磁盘与网络I/O
sendfile on ;
#开启目录列表访问,适合下载服务器,默认关闭
autoindex on ;
#防止网络阻塞
tcp_nopush on;
#keepalive超时时间,客户端到服务器的连接持续有效时间,当出现对服务器的后端请求时,可以避免建立或重新建立连接
keepalive_timeout 60;
#提高数据的实时响应性
tcp_nodelay on;
#开启gzip压缩
gzip on;
gzip_min_length 1KB;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
#压缩级别大小,最大为9,值越小,压缩后比例越小,CPU处理更快,值越大,消耗CPU比较高
gzip_types text/plain application/x - javescript text/css application/xml;
gzip_vary on;
#允许客户端请求的最大单文件字节数
client_max_body_size 10MB;
#缓冲区代理缓冲用户端请求的最大字节数
client_body_buffer_size 128KB;
#nginx跟后端服务器超时时间(代理连接超时)
proxy_connect_timeout 90;
#后端服务器数据回传时间(代理发送超时)
proxy_send_timeout 90;
#连接成功后,后端服务器响应时间(代理接受超时)
proxy_read_timeout 90;
#设置代理服务器(nginx)保持用户头信息的缓冲区大小
proxy_buffer_size 4KB;
#proxy_buffers缓冲区,网页平均在32KB一下的话,这样设置
proxy_buffers 4 32KB;
#高负荷下缓冲大小(proxy_buffers*2)
proxy_busy_buffers_size 64KB;
#设定请求缓冲
large_client_header_buffers 4 4KB;
client_header_buffer_size 4KB;
#客户端请求头部的缓冲区大小,这个可以根据系统分页大小来设置,一般一个请求的头部不会超过1KB,不过一般胸痛分页都大于1KB,所以这里设置为分页大小,分页大小可以用命令getconf pagesize取得
#为打开文件指定缓冲,默认时没有启用的,max指定缓冲数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓冲
open_file_cache max = 102400 inactive = 20s;
#多长时间检查一次缓冲的有效信息
open_file_cache_valid 30s;
#open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一致是在缓冲中打开的,比如上面,如果有一个文件在inactive
open_file_cache_min_user 1;
#包含其他配置文件,如自定义虚拟主机
include vhosts.conf;