Nginx常见参数优化说明

### For more information on configuration, see:
###   * Official English Documentation: 
##nginx运行用户
user nginx;
##pid路径
pid /run/nginx.pid;
##nginx工作的线程数,auto根据本机cpu颗粒数自动适配.
worker_processes auto;
##一个nginx进程打开的最多文件描述符数目,与ulimit -n(系统每个进程可打开的文件数)的值保持一致.
worker_rlimit_nofile 65535;
##events模块中包含nginx中所有处理连接的设置.
events {
##一个worker进程同时打开的最大连接数,由系统的可用socket连接数限制.
worker_connections 51200;
##当nginx接到新连接的请求时,会尽可能的接受更多的连接
multi_accept on;
##Linux2.6+,性能最好的多路IO复用客户端线程的轮询方法.
use epoll;
} 
##HTTP模块控制着nginx之http处理的所有核心特性.
http {
##加载MIME类型
    include /etc/nginx/mime.types;
##设置文件使用的默认的MIME-type
    default_type text/html;
##设置头文件中的默认的字符集
    charset UTF-8;
##关闭错误页面nginx版本号显示,于安全有益.
    server_tokens off;
##sendfile减少拷贝文件过程,实现高效数据传输
    sendfile on;
##当使用sendfile函数时,tcp_nopush才起作用,一个数据包里发送所有头文件,而不一个接一个的发送
##它是Nagle算法的进一步增强,即阻塞数据包发送.
##Tcp_nopush选项会让nginx尝试在一个packet内发送其HTTP响应,而不是分帧传送##对优化吞吐率很有用处
    tcp_nopush on;
##禁用Nagle算法,益于大量数据的通信性能.
    tcp_nodelay on;
##关闭日志,减少IO
    #	access_log off;
    #	log_format main '[$time_local] ' '$request_uri ' '$status $upstream_addr $upstream_status ' '$upstream_response_time $request_time';
log_format cache '[$time_local] ' '$request_uri ' '$status $upstream_addr $upstream_status ' '$upstream_response_time $request_time';
    #	access_log /var/log/nginx/access.log main;
##设置错误日志路径和文件名
    error_log /var/log/nginx/error.log;
##当被代理的后端服务器的响应状态码大于等于300时,将响应转发给nginx由error_page指令来处理.
    proxy_intercept_errors on;
##自定义错误页面	
    error_page 404 http://xxx.com/error/404.html;
    error_page 500 502 503 504 http://xxx.com/error/soHot.html;
##keep-alive连接的超时时间,server会在此时间之后关闭连接
    keepalive_timeout 13;
##client的请求可以转换成keep-alive连接的数量,影响性能测试,默认100
#	keepalive_requests 65535;
##允许server在client停止响应以后关闭连接,释放分配给该连接的内存
    reset_timedout_connection on;
##如果client停止读取数据,在此时间以后释放该连接,默认是60秒
    send_timeout 6;
##设置用于保存各种key(比如当前连接数)的共享内存的参数
    limit_conn_zone $binary_remote_addr zone=addr:24m ;
##为给定的key设置最大连接数,即一个IP地址最多同时打开连接数
    limit_conn addr 51200;
##采用gzip压缩的形式发送数据
    gzip on;
##为指定的客户端禁用gzip功能
    gzip_disable "msie6";
##压缩所有的请求
	gzip_proxied any;
##设置对数据启用压缩的最少字节数,少于1000字节不压缩
	gzip_min_length 1000;
##压缩级别
	gzip_comp_level 6;
##设置需要压缩的数据格式
	gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/jpeg image/gif image/png image/jpg application/x-javascript image/svg+xml application/x-font-ttf application/vnd.ms-fontobject;
##缓存最大数目,以及缓存的时间	
	open_file_cache max=100000 inactive=20s;
##更新间隔时间	
	open_file_cache_valid 30s;
##inactive参数时间内文件的最少使用次数,如果超过这个数字,缓存一直存在
	open_file_cache_min_uses 2;
##搜索文件时是否缓存错误信息,再次给配置中添加文件
	open_file_cache_errors on;#	
	proxy_next_upstream 	off;
##确定在何种情况下请求将转发到下一个服务器。转发请求只发生在没有数据传递到客户端的过程中##[error|timeout|invalid_header|http_500|http_502|http_503|http_504|http_404|off]##表示只负载一台机器,如果超时则返回,不去轮询其他机器	
	proxy_next_upstream_tries 1;
##nginx上传文件大小限制,默认值1M
	client_max_body_size 	10m;	
	client_body_buffer_size	128k;
##如果client对于body的请求超过这个时间,则发送"request timed out"响应,默认60秒##防范慢查询***
	client_body_timeout 	10;	
	client_header_timeout 	10;
#nginx跟后端服务器连接超时时间(代理连接超时)
	proxy_connect_timeout 	13;	
	proxy_send_timeout 	21;
#后端服务器数据回传时间(代理发送超时)
	proxy_read_timeout 	34; 
#连接成功后,后端服务器响应时间(代理接收超时)
	proxy_buffer_size 	64k;
#设置代理服务器(nginx)保存用户头信息的缓冲区大小
	proxy_buffers 		4 64k;
#proxy_buffers缓冲区,网页平均在32k以下
	proxy_busy_buffers_size 128k;
#高负荷下缓冲大小(proxy_buffers*2)
	proxy_temp_file_write_size 256k;
#设定缓存文件夹大小,大于这个值,将从upstream服务器传
#当文件超过该参数设置的大小时,nginx会先将文件写入临时目录(默认为nginx安装目下/proxy_temp目录),注意权限问题
        server_names_hash_bucket_size	128;	
        client_header_buffer_size 64k;	
        large_client_header_buffers 4 128k;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章