文章插图
#user nobody; #配置用户或者组,默认为nobody nobody
worker_processes 4; #允许生成的进程数,默认为1
worker_cpu_affinity 00000001 00000010 00000100 00001000; #为每个进程分配一个CPU
worker_rlimit_nofile 102400; #为Nginx工作进程改变打开最多文件描述符数目的限制 。用来在不重启主进程的情况下增加限制 。
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info; #指定日志路径,级别 。这个设置可以放入全局块,http块,server块,级别依次为:debug|info|notice|warn|error|crit|alert|emerg
#pid logs/nginx.pid; #指定nginx进程运行文件存放地址
events {
accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on
multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off
use epoll; #使用epoll(linux2.6的高性能方式)事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
worker_connections 102400; #最大连接数,默认为512
}
http {
include mime.types; #文件扩展名与文件类型映射表
default_type Application/octet-stream; #默认文件类型,默认为text/plain
lua_package_path "/usr/local/lib/lua/?.lua;;"; #lua库位置
charset utf-8; #字符集
server_names_hash_bucket_size 128; # 保存服务器名字的hash表
client_header_buffer_size 4k; #用来缓存请求头信息的,容量4K,如果header头信息请求超过了且没有配置client_header_buffer_size,nginx会直接返回400错误
large_client_header_buffers 4 32k; #如果large_buffer还是无法容纳,那么就会返回414(处理request_line)/400(处理request_header)错误
client_max_body_size 300m; #允许客户端请求的最大单文件字节数
tcp_nodelay on; #提高数据的实时响应性
client_body_buffer_size 512k; #缓冲区代理缓冲用户端请求的最大字节数(请求多)
proxy_connect_timeout 5s; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_read_timeout 60s; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_send_timeout 5s; #后端服务器数据回传时间(代理发送超时)
proxy_buffer_size 16k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 64k; #该指令设置缓冲区的大小和数量,从被代理的后端服务器取得的响应内容,会放置到这里
proxy_busy_buffers_size 128k; #所有处在busy状态的buffer size加起来不能超过proxy_busy_buffers_size
proxy_temp_file_write_size 128k; #如果response的内容很大的话,Nginx会接收并把他们写入到temp_file里去 。busy的buffer传输完了会从temp_file里面接着读数据,直到传输完毕
gzip on; #NGINX可以压缩静态资源
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2; #压缩级别大小,最小1,最大9,值越小,压缩后比例越小,CPU处理更快; 值越大压缩后占用带宽越少 。
gzip_types text/plain application/x-JAVAscript text/css application/xml; #压缩类型:text js css xml 都会被压缩
gzip_vary on; #作用是在http响应中增加一行,目的是改变反向代理服务器的缓存策略
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
#access_log off; #取消服务日志
#日志格式
# ip 远程用户 当地时间 请求URL 状态 发送的大小 响应的头 客户端使用的浏览器 页面响应的时间
log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $request_time $http_x_forwarded_for'; #自定义格式
access_log logs/access.log myFormat; #combined为日志格式的默认值
sendfile on; #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块
#sendfile_max_chunk 100k; #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限
#tcp_nopush on;
tcp_nopush on; #防止网络阻塞
#keepalive_timeout 0;
keepalive_timeout 65; #连接超时时间,默认为75s,可以在http,server,location块
#gzip on;
#上游服务器
upstream mysvr {
#负载均衡算法,默认为round-robin轮循
推荐阅读
- MYSQL主主模式 LNMP 独立部署配置指导书
- CentOS7下vsftpd over SSL/TLS加密传输配置实践
- Apollo配置中心管理后台的详解
- Nginx配置各种响应头防止XSS,点击劫持,frame恶意攻击
- niushop阿里云短信配置
- SLB 阿里云负载均衡SSL证书配置指南
- 使用 PowerDNS 轻松配置 DNS 名称服务器
- Windows WDS服务安装配置
- WordPress环境配置
- centos8 vsftpd配置虚拟用户认证