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; }
![]() |
![]() |