Nginx配置详解 nginx.conf优化与性能调优 nginx.conf宝塔面板nginx高并发性能调优
nginx.conf配置优化与性能调优
nginx.conf配置详细注解
#选择用户启动
user nginx;
#Nginx开启多个工作进程,自动
worker_processes auto;
#Nginx开启多核任务处理,配合worker_processes,自动
worker_cpu_affinity auto;
#Nginx 最大可用文件描述符数量,同时需要配置操作系统的 "ulimit -n 200000",或者在 /etc/security/limits.conf 中配置
worker_rlimit_nofile 80000;
#pid logs/nginx.pid;
#events模块:配置影响nginx服务器或与用户的网络连接
events {
# 配置单个 Nginx 单个进程可服务的客户端数量,(最大值客户端数 = 单进程连接数 * 进程数 )。最大 64K
worker_connections 65535;
#防止在同一一个时刻只有一个请求的情况下,出现多个睡眠进程会被唤醒但只能有一个进程可获得请求的尴尬
accept_mutex on;
#Nginx服务器的每个工作进程可以同时接受多个新的网络连接
multi_accept on;
#使用epoll事件驱动,因为epoll的性能相比其他事件驱动要好很多
use epoll;
}
http {
include mime.types;
default_type application/octet-stream;
#使用log_format指定日志的格式
log_format log_json '{"local_date_time": "$time_local",'
#' "@fields":{'
'"nginx.access.client_ip":"$remote_addr" ,'
'"nginx.access.user_name":"$remote_user" ,'
'"nginx.access.host":"$http_host" ,'
'"nginx.access.info":"$request" ,'
'"nginx.access.cookie":"$http_cookie" ,'
'"nginx.access.response_code":"$status" ,'
'"nginx.access.body_sent.bytes":"$body_bytes_sent" ,'
'"nginx.access.referrer":"$http_referer" ,'
'"nginx.access.agent":"$http_user_agent" ,'
'"nginx.access.remote_ip":"$http_x_forwarded_for" ,'
'"nginx.access.request_time":"$request_time" ,'
'"nginx.access.upstream_addr":"$upstream_addr" ,'
'"nginx.access.upstream_status":"$upstream_status" ,'
'"nginx.access.upstream_response_time":"$upstream_response_time"}';
#由于使用日志分析工具ELK对访问日志做统计,需要将日志格式定义为json格式
access_log /var/log/nginx/access.log log_json;
error_log /var/log/nginx/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#是否调用sendfile函数传输文件,默认为off,使用sendfile函数传输,可以减少user mode和kernel mode的切换,从而提升服务器性能。
sendfile on;
#该参数限定Nginx worker process每次调用sendfile()函数传输数据的最大值,默认值为0,如果设置为0则无限制。配合上边sendfile 选项一起使用。
sendfile_max_chunk 512k;
#防止网络阻塞,(需开sendfile)
tcp_nopush on;
#用于提高I/O性能,提高高频发送小数据报文的实时性。
tcp_nodelay on;
#给客户端分配keep-alive链接超时时间,服务器将在超时之后关闭相应的连接。
keepalive_timeout 30;
#服务器响应超时设置
send_timeout 10;
#安全优化:当前使用的nginx可能会有未知的漏洞,如果被黑客使用将会造成无法估量的损失,将nginx的版本隐藏
server_tokens off;
#设置请求头和请求体(各自)的超时时间。
client_header_timeout 30;
client_body_timeout 30;
#客户端请求头缓冲区大小
client_header_buffer_size 4K;
#允许客户端请求的最大单文件字节数
client_max_body_size 10m;
#设置用户保存各种key的共享内存的参数,5m指的是5兆
limit_conn_zone $binary_remote_addr zone=addr:5m;
#为给定的key设置最大的连接数,允许每一个IP地址最多同时打开有100个连接
limit_conn addr 100;
#告诉nginx关闭不响应的客户端连接
reset_timedout_connection on;
#静态文件缓存,开启缓存的同时也指定了缓存文件的最大数量,20s如果文件没有被请求则删除缓存
open_file_cache max=102400 inactive=20s;
#多长时间检查一次缓存的有效期
open_file_cache_valid 30s;
#有效期内缓存文件最小的访问次数,只有访问超过2次的才会被缓存
open_file_cache_min_uses 2;
#gzip
#设置nginx采用gzip压缩的形式发送数据,减少发送数据量,但会增加请求处理时间及CPU处理时间
gzip on;
#设置对数据启用压缩的最少字节数。如果一个请求小于1000字节,我们最好不要压缩它,因为压缩这些小的数据会降低处理此请求的所有进程的速度
gzip_min_length 1k;
#指定gzip功能压缩文件时使用的缓存空间的大小
gzip_buffers 4 16k;
#识别http的协议版本
gzip_http_version 1.0;
#设置数据的压缩等级,值越高压缩比越大也越慢,设置4比较中立
gzip_comp_level 4;
#需要压缩的数据格式
gzip_types text/plain application/x-javascript text/css application/xml;
#打开缓存的同时也指定了缓存最大数目,以及缓存的时间
open_file_cache max=100000 inactive=20s;
#在open_file_cache中指定检测正确信息的间隔时间
open_file_cache_valid 30s;
#定义了open_file_cache中指令参数不活动时间期间里最小的文件数
open_file_cache_min_uses 2;
#缓存文件错误信息
open_file_cache_errors on;
点击链接加入群聊三群:751529538
点击链接加入群聊二群:376877156
点击链接加入群聊【路由器交流群:622891808已满】
本站附件分享,如果附件失效,可以去找找看
饿了么红包