# 运行用户 user nginx; # 工作进程数, 通常设置成和cpu的数量相等 worker_processes 4; # PID 文件, 记录当前启动的nginx 的进程ID pid /var/run/nginx.pid; # 全局错误日志 error_log /var/log/nginx/error.log warn; # 更改worker 进程的最大打开文件数, 这个值为操作系统限制。使用ulimit -n 命令查看 worker_rlimit_nofile 1024; # 工作模式及连接数上限 events { # 事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; # epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型, 如果跑在FreeBSD上面, 就用kqueue模型。 use epoll; # 单个后台worker process 进程允许的最大链接数 (最大连接数=连接数*进程数) worker_connections 1024; # nginx 收到新的连接通知后 接受尽可能多的连接 multi_accept on; } # HTTP 模块 , 控制着nginx http 处理的所有核心特性 http { # 设置 mine类型(邮件支持类型), 类型由mine.types文件定义 include /etc/nginx/mime.types; # 设置文件类型, 默认 MIME-type。 default_type application/octet-stream; # 设置默认编码 charset utf-8; # #服务器名字的hash表大小 server_names_hash_bucket_size 128; # 客户端请求头部的缓冲区大小, 这个可以根据您的系统分页大小来设置, 一般一个请求头的大小不会超过1k, # 不过由于一般系统的分页都要大于1K,所以这里设置为分页大小。 # 使用 getconf PAGESIZE 命令 获取分页大小 , 如果超过分页的情况 必须是系统分页大小的整倍数。 client_header_buffer_size 32k; # 客户请求头缓冲大小 large_client_header_buffers 4 32k; # 设定通过nginx 上传文件的大小 client_max_body_size 300m; # 设置 读取客户端请求正文的缓冲区大小。 默认值 x86和32-bit 为8k , 64-bit 为16k client_body_buffer_size 512k; # 与代理服务器建立连接的超时时间. Default: 60s proxy_connect_timeout 60; # 连接成功后 从代理服务器读取的响应超时时间 Default: 60s proxy_read_timeout 60; # 设置向代理服务器发送请求的超时时间。 Default 60s proxy_send_timeout 120; # 从代理服务器读取第一部分应答的缓冲区大小, # 默认情况下 这个值的大小为指令 proxy_buffers 中指定的第一个缓冲区的大小, 可以设置为更小 proxy_buffer_size 16k; # 从单个连接的代理服务器读取响应的缓冲区的数量和大小 Default: 4k|8k proxy_buffers 4 64k; # 限制在响应尚未完全读取时 可能忙于向客户端发送响应的缓冲区的总大小。 Default: 8k|16k proxy_busy_buffers_size 128k; # 设置 写入proxy_temp_path时数据的大小, 预防一个工作进程在传递文件时阻塞太长 Default: 8k|16k proxy_temp_file_write_size 128k; # 设置日志的输出格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; # nginx 请求日志 access_log /var/log/nginx/access.log main; # sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件, 对于普通应用, # 必须设为 on,如果用来进行下载等应用磁盘IO重负载应用, # 可设置为 off, 以平衡磁盘与网络I/O处理速度, 降低系统的uptime. sendfile on; # 开启或关闭nginx在FreeBSD上使用TCP_NOPUSH套接字选项, 在linux上使用TCP_CORK 套件字选项, # 选项仅在使用sendfile 的时候才开启。 # tcp_nopush on; # 开启或关闭nginx使用TCP_NODELAY选项的功能, # 这个选项仅在将连接转变为长连接的时候才被开启(在upstream发送响应到客户端时也会启用) # tcp_nodelay on; # 长连接超时时间, 单位秒 keepalive_timeout 65; # 启用 gzip 压缩功能 gzip on; # 默认值是1.1,就是说对HTTP/1.1协议的请求才会进行gzip压缩 gzip_http_version 1.1; # 最小压缩的页面,如果页面过于小,可能会越压越大,这里规定大于1K的页面才启用压缩 gzip_min_length 1k; # 设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流 gzip_buffers 4 16k; # nginx 做前端代理时启用该选项,后端服务器的headers头启用压缩面才启用压 gzip_proxied expired no-cache no-store private auth; # 什么类型的页面或文档启用压缩 gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js; # 压缩级别,1压缩比最小处理速度最快,9压缩比最大但处理最慢,同时也最消耗CPU,一般设置为3就可以了 gzip_comp_level 3; # 其它的配置文件存放路径 include /etc/nginx/conf.d/*.conf; }