Nginx配置详解
一.nginx配置文件结构图
二.分块释义
1.全局配置
user [用户名] [组名];
示例: user nginx1 nginx;
worker_processes [工作进程数];
示例: worker_processes 4; ---通常为cpu数量的1倍或2倍,可以设置成auto自动检测
error_log [存放路径] [存放类型]
示例: error_log logs/error.log info;
pid [存放路径];
示例: pid logs/nginx.pid;
include [文件路径];
示例: include conf/nginx2.conf;
2.events配置
use [I/O模型];
示例: use epoll; ---模型包括epoll(linux常用),select,poll,kqueue(windows常用)等
worker_connections [最大连接数];
示例: work_connections 1024; ---表示每个work_process允许的最大连接数,默认512
3.http全局配置
include [文件名];
default_type [媒体类型];
示例: include mime.types; ---前端请求的资源类型
default_type application/octet-stream;
server_tokens [on | off];
示例: server_tokens off; ---显示或隐藏nginx版本,建议隐藏
access_log [服务日志路径文件名] [格式,可选项]
示例: access_log main;
sendfile [on | off];
示例: sendfile on; ---是否使用sendfile方式传输文件,普通应用设置 on ,IO重负载应用设置 off
keepalive_timeout [超时时间];
示例: keepalive_timeout 120; ---server端连接的保持时间,默认75秒
upstream [名称] {
server [ip地址]:[端口号];
server [ip地址]:[端口号];
}
示例: upstream myServer {
ip_hash; ---负载均衡策略:1.轮询(默认) 2.ip_hash(同一个客户端保持发送同一个服务器) 3.least_conn(请求转发给连接数较少的服务器)
server 192.168.0.1:8081 weight=2; ---当前权重设置为2,默认为1
server 192.168.0.2:8081 backup; ---设置的状态:1.down(当前的server不参与负载均衡) 2.max_fails(默认为1,表示最大失败次数) 3.fail_timeout (在这个时间内max_faills次都失败了,则被认为停机)4.backup(表示备用服务器)
} ---要在server中增加proxy_pass http://myServer/;
4.server全局配置
listen [ip:port | ip | port];
示例: listen 8080; ---配置监听的ip地址,端口号
keepalive_requests [数量];
示例: keepalive_requests 100; ---单连接请求上限次数
server_name [域名,可用正则表达式]
示例: server_name www.cnblog.com ---设置访问域名
5.location配置
location [ = | ~ | ~* | ^~ ] uri {......}; ---1.'=' 标准匹配 2.‘~’ 正则匹配,区分大小写 3.‘~*’ 正则匹配,不区分大小写 4.‘^~’ 找匹配度最高的uri
示例: location ~/testweb{...};
proxy_pass [地址];
示例: proxy_pass http://myServer/; ---设置被代理服务器的地址
rewrite [正则表达式] [地址] [flag];
示例:rewrite ^ http://www.abc.com break; ---重定向到http://www.abc.com,rewrite可以用于server{...},location{...},if{...}中;flag:last(匹配完继续匹配),break(匹配完终止匹配),redirect(临时重定向),permanent(永久重定向)
root [路径];
示例: root /data/images; ---接收请求后查找的资源路径
proxy_set_header [变量名] [变量值];
示例: proxy_set_header host $host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For &proxy_add_x_forwarded_for; ---用来设定被代理服务器接收到的header信息
【nginx配置文件是nginx里面很重要的一环,就将它单独拿出来分析,参考了网上的解析,综合起来供自己和大家观看。】