nginx参数优化说明 fangfu的技术博客

vim nginx.conf

user nginx nginx;

worker_processes auto; #worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

error_log /var/log/nginx/nginx_error.log crit; pid /usr/local/nginx/logs/nginx.pid;

worker_rlimit_nofile 102400; # 优化worker进程最大打开文件数

events { use epoll; # 使用epoll,epoll是linux2.6的高性能方法,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率. use是个事件模块指令,用来指定nginx的工作模式,nginx支持的工作模式有[ kqueue、rtsig、epoll、poll、select、 /dev/poll];select和poll都是标准的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在linux平台上,而kqueue用在BSD系统中,对于linux系统,epoll工作模式时首选 worker_connections 102400; # 单个进程允许的客户端最大连接数,进程的最大连接数受linux系统的最大打开文件数限制,在执行操作系统命令“ulimit -n 65535”后worker_connections的设置才能生效 multi_accept on; # 允许同时接受多个新网络连接请求的功能。一个nginx工作进程可以同时接受所有的新连接。 }

http { include mime.types; default_type application/octet-stream;

    server_names_hash_bucket_size 128; # 服务器名字的hash表大小
    client_header_buffer_size 32k; # 用于指定来自客户端请求头headerbuffer大小,对于大多数请求,1KB的缓冲区大小已经足够,如果自定义了消息头或有								更大的cookie,可以增加缓冲区大小。这里设置为32KB
    large_client_header_buffers 4 32k;  # 用来指定客户端请求中较大的消息头的缓存最大数量和大小,“4”为个数,“32”为大小,最大缓存为4个32KB。
    client_max_body_size 50m; # 客户端最大文件上传,默认1M,这里是50M

    sendfile   on;   # 开启高效文件传输模式,将tcp_nopush和tcp_nodely两个指令设置为on,用于防止网络阻塞。
    tcp_nopush on;   # 防止网络阻塞

    keepalive_timeout 60; # 用于设置客户端连接保持活动的超时时间,在超过这个时间之后服务器会关闭该链接。

    tcp_nodelay on; # 防止网络阻塞

    proxy_headers_hash_max_size 51200;  # 设置头部哈希表的最大值,不能小于你后端服务器设置的头部总数
    proxy_headers_hash_bucket_size 6400; # 设置头部哈希表大小

    #FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度
    fastcgi_connect_timeout 300; # 指定连接到后端fastCGI的超时时间
    fastcgi_send_timeout 300; # 向fastCGI请求的超时时间,这个值是指已经完成两次握手后向fastCGI传送的超时时间
    fastcgi_read_timeout 300; # 接收fastCGI应答的超时时间,这个值已经完成两次握手后接收fastCGI应答的超时时间
    #fastcgi_buffer_size 64k; # 指定读取fastCGI应答第一部分需要用多大的缓冲区,一般第一部分应答不会超过1k,一般设置为64k
    #fastcgi_buffers 4 64k; # 指定本地需要用多少和多大的缓冲区来缓冲fastCGI的应答
    #fastcgi_busy_buffers_size 128k; # 默认值是fastcgi_buffers的两倍
    #fastcgi_temp_file_write_size 256k; # 在写入fastcgi_temp_path是用多大的数据块,默认值是fastcgi_buffers两倍

    #gzip on;
    #gzip_min_length  1k;
    #gzip_buffers     4 16k;
    #gzip_http_version 1.1;
    #gzip_comp_level 2;
    #gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml #application/xml+rss;
    #gzip_vary on;
    #gzip_proxied   expired no-cache no-store private auth;
    #gzip_disable   "MSIE [1-6]\.";

    limit_conn_zone $binary_remote_addr zone=perip:10m;
    limit_conn_zone $server_name zone=perserver:10m;  
    # 限制单一IP来源的连接数,同一IP同一时间只允许有一个连接;同时也会限制单一虚拟服务器的总连接数
    #limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; #zone=one:10m表示生成一个大小为10M,名字为one的内存区域,用来存储访问的频次信息;rate=1r/s表示允许相同标识的客户端的访问频次,这里限制的是每秒1次
    #limit_req_zone 会对压测服务产生影响,也能起到一定的CC攻击防范
    #limit_req_zone 需要结合到server段落中的配置limit_req zone=one burst=5 nodelay;结合来使用。

    server_tokens off; # 隐藏版本号;
    access_log off; #关闭access_log,即不记录访问日志
    fastcgi_intercept_errors on; # 开启nginx支持将404错误重定向的功能

include conf.d/*.conf; }

FFwechat FFalipay