Nginx配置
nginx.conf配置文件有三大块:全局快、events块、http块
全局块
指令名 指令值; #全局块,主要设置Nginx服务器整体运行的配置指令
指令名 | 指令值 | 默认值 | 作用 |
---|
user | 用户 | nobody | 指定访问文件夹(静态文件)的用户,若无权限则403 |
master_processes | on/off | on | 指定是否开启工作进程 |
*worker_processes | 数值 | 1 | 配置nginx并发数,建议与cpu内核数一致或更低 |
daemon | on/off | on | 是否后台执行nginx |
pid | 路径 | …/nginx.pid | 存储pid的文件路径 |
error_log | 路径 | …/error.log | 存储错误日志路径 |
include | xx.conf | 无 | 引入其他配置 |
events块
#events块,主要设置,Nginx服务器与用户的网络连接,这一部分对Nginx服务器的性能影响较大
events {
指令名 指令值;
}
指令 | 指令值 | 默认值 | 作用 |
---|
accept_mutex | on/off | on | 网络连接序列化 |
*multi_accept | on/off | off | 是否运行同时收到多个网络连接,建议设置on |
*worker_connections | 数值 | 512 | 单个worker最大连接数 |
*use | select/poll/epoll/kqueue | 根据操作系统而定 | nginx底层使用的函数.在linux2.6以上默认使用epoll |
http块
#http块,是Nginx服务器配置中的重要部分,代理、缓存、日志记录、第三方模块配置...
http {
指令名 指令值;
#server块,是Nginx配置和虚拟主机相关的内容
server {
#location块,基于Nginx服务器接收请求字符串与location后面的 值进行匹配,对特定请求进行处理
指令名 指令值;
location uri {
指令名 指令值;
...
}
...
}
...
}
指令 | 指令值 | 默认值 | 作用块 | 作用 |
---|
*include | 导入外部配置 | 无 | http | 通常会在http块中导入mime.type,这是用来解析前端响应的资源,使用default必须导入mime.type |
*default_type | 资源类型如:application/json、application/octet-stream(二级制文件) | text/plain | http/server/location | 设置响应的资源类型 |
access_log | log路径 格式名(不填则默认) | logs/access.log combined | http/server/location | 设置log输出路径 |
log_format | 格式名 格式 | combined “…” | http | 格式化log输出样式 |
*sendfile | on/off | off | http/server/location | 是否使用sendfile()函数提升文件传输性能,建议设置为on |
*tcp_nopus | on/off | off | http/server/location | sendfile打开的状态下才会生效,提高网络传输效率,建议设置为on |
*tcp_nodelay | on/off | off | http/server/location | 有网的的情况下才生效,保证网络连接实效性,建议设置为on |
*keepalive_timeout | 数值 | 75s | http/server/location | http长连接超时时间 |
keepalive_requests | 数值 | 100 | http/server/location | 一个长连接最多被使用次数 |
*listen | 数值 | 80 | server | 监听端口 |
*server_name | ip/域名 | localhost | server | 监听的IP/域名 |
*root | 资源目录 | 无 | location | 静态资源所对应的目录 |
alias | 资源目录 | 无 | location | 同root |
*index | 静态资源 | 无 | location | 访问uri默认打开的静态资源 |
*error_page | 状态码 uri | 无 | server | 当出现该状态码时,响应某location的uri |
*gizp | on/off | off | http/server/location | 打开压缩模块,建议设置为on |
*gzip_types | 资源类型如:application/json | text/html | http/server/location | 指定压缩文件类型 |
*gzip_comp_level | 1-9 | 1 | http/server/location | 压缩强度,1最低,9最高,建议设置为5或6 |
*gzip_vary | on/off | off | http/server/location | 被压缩文件是否带“Vary:Accept-Encoding”的响应头,建议设置为on |
gzip_buffers | 空间数 大小 | 32 4k | http/server/location | 压缩申请的空间数和大小 |
*gzip_disable | 正则表达式 | 无 | http/server/location | “User-Agent"请求头匹配正则表达式,则不压缩,建议设置为"MSIE [1-6].”,对IE6以下浏览器禁用压缩 |
gzip_http_version | 1.0/1.1 | 1.1 | http/server/location | 针对不同HTTP协议版本选择性地开启Gzip功能 |
*gzip_min_length | 数据大小 | 20 | http/server/location | 超过指定数据大小则不压缩,建议设置为1k |
*gzip_proxied | off/any/请求头信息 | off | http/server/location | 建议设置为expired no-cache no-store private auth |
*gzip_static | on/off | off | http/server/location | 避免gzip和sendfile,建设置为on |
*add_header | 响应头信息 | 无 | http/server/location | 设置响应头信息 |
*expires | time/off/max | off | http/server/location | 设置缓存时间(add_header也可以设置) |
valid_referers | none/blocked/server_names/正则表达式 | 无 | server/location | 设置防盗链 |
*proxy_pass | url | 无 | location | 设置被代理服务器地址 |
*proxy_set_header | 请求头 信息 | 无 | location | 代理时,更改/添加请求头信息 |
proxy_redirect | 被代理IP 代理IP/default/off | default | location | 代理时,更改请求头Refer和响应头Location为代理IP |
ssl | off | on/off | http、server | 启HTTPS,可以使用 listen 443 ssl |
ssl_certificate | 路径 | 无 | http、server | PEM格式证书 |
ssl_certificate_key | 路径 | 无 | http、server | 证书Key |
ssl_session_cache | off/none/builtin/shared | none | http、server | SSL会话缓存 |
ssl_session_timeout | 时间 | 5m | http、server | 缓存中的会话参数时间 |
ssl_ciphers | 密码格式 | HIGH:!aNULL:!MD5 | http、server | 指出允许的密码 |
ssl_prefer_server_ciphers | on/off | off | http、server | 指定是否服务器密码优先客户端密码 |
proxy_cache_path | 路径 属性 | 无 | http | 设置Nginx本地缓存路径 |
proxy_cache | name/off | off | http/server/location | 指定Nginx本地缓存名字 |
proxy_cache_key | 值 |
s
c
h
e
m
e
scheme
schemeproxy_host$request_uri | http/server/location | 设置Nginx缓存文件名使用的是什么值的MD5 |
proxy_cache_valid | 状态码 时间 | 无 | http/server/location | 设置Nginx缓存状态码和状态码缓存时间 |
proxy_cache_min_uses | 数值 | 1 | http/server/location | 设置资源被访问多少次后被缓存 |
proxy_cache_methods | 请求方法 | GET | http/server/location | 设置缓存哪些HTTP方法 |
proxy_cache_purge | name key | 无 | http/server/location | 清除缓存 |
proxy_no_cache | 条件 | 无 | http/server/location | 符合条件不缓存 |
proxy_cache_bypass | 条件 | 无 | http/server/location | 符合条件不从缓存中获取数据 |
*proxy_buffers | 数量 文件大小 | 256 8k | http/server/location | 响应体初始大小,当不够时会再申请,建议调小 |
*proxy_buffer_size | 文件大小 | 4k/8k | http/server/location | 响应头初始大小,当不够时会再申请,建议调小 |
*proxy_busy_buffer_size | 文件大小 | 无 | http/server/location | nginx会在没有完全读完后端响应就开始向客户端传送数据,所以它会划出一部分busy状态的buffer来专门向客户端传送数据 |
autoindex off | on/off | off | http/server/location | 启用或禁用目录列表输出 |
autoindex_exact_size | on/off | on | http/server/location | 显示目录文件的具体大小 |
autoindex_format | html/json/xml | html | http/server/location | 目录显示格式 |
autoindex_localtime | on/off | off | http/server/location | 显示当前时间 |
auth_basic | on/off | off | http/server/location | 开启用户认证 |
auth_basic_user_file | 路径 | 无 | http/server/location | 指定用户名和密码所在文件 |
*charset | 编码 | 无 | http/server/location | 指定编码,建议设置utf-8 |
lua_package_path | 路径 | “user/local/openrestry/lualib/?.lua;;” | http | 导入第三方lua模块 |
lua_package_cpath | 路径 | “user/local/openrestry/lualib/?.so;;” | http | 导入c模块 |
*server_names_hash_bucket_size | 数据大小 | | http | 服务器名大小限制 |
*client_header_buffer_size | 数据大小 | | http | 请求头大小限制 |
*large_client_header_buffers | 个数 数据大小 | | http | 请求行+请求头限制个数*大小 |
*client_max_body_size | 数据大小 | | http | 最大上传文件 |
limit_conn_zone | 参数 zone=名字:带宽 | 无 | http | 限制参数的并发连接数以及带宽,名字可随便取,不重复就行 |