1.server就是一个主机
2.location / 指的是一般匹配,location= { }这个指的是精准匹配,location ~正则匹配
3.upstream lizhen就相当于一个个模块,我们下面在代理的时候可以直接用proxy_pass http:// lizhen
在某个模块中,我们配置地址的时候,如果后面加上了down说明这台机器不参与,backup如果某台机器down之后,这台机器会立刻参与,替代他的位置。
4.worker_processes 1; 指的是进程数。
5.nginx在功能上来讲是分为三块
http协议-》到达nginx-》选择一个handler(处理器模块)-》过滤器模块(多个过滤器,可以处理动静分离,防盗链,一般的处理内容都会在此)-》http响应模块
6.在配置的时候我们有三种配置方式
基于域名:listen:80; server_name:lizhen.com;
基于ip: listen:80; server_name:192.168.1.140
基于端口号: listen: 9001; server_name:lizhen.com
7.日志相关
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;
上面的main的格式对应日志中的位置就是这样的。
10.0.1.139 - - [07/Jun/2018:13:51:42 +0800] "GET /eureka/js/wro.js HTTP/1.1" 304 0 "http://10.1.1.146/" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
main格式是我们定义好的一种日志格式。
tail logs/error.log 错误日志
tai ogs/access.log 访问相关的日志
'$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
"GET /eureka/js/wro.js HTTP/1.1"
304 0 "http://10.1.1.146/"
"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
9.if和set的使用
10.nginx限流
-----------------------------------------------------------------
nginx限制ip并发数,也是说限制同一个ip同时连接服务器的数量
1.limit_zone 功能是限制一个客户端的并发连接数,且只能放在http作用域
limit_conn_zone $binary_remote_addr zone=one:10m;
#定义一个名为one的limit_zone,大小10M内存来存储session
2,添加limit_conn
limit_conn one 20; #表示最大并发连接数
limit_rate 500k; #带宽限制,对单个连接限数,如果一个ip 20个连接,就是500Kx20
-----------------------------------------------------------------
限制同一个ip在一段时间里连接服务器的次数.
limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;
#定义一个名为allips的limit_req_zone用来存储session,大小是10M内存,限制平均每秒的请求为5个。
limit_req zone=allips burst=5 nodelay;
最大延迟请求数量,以及是否在同一秒处理,还是按照一定的速率处理
#限制每ip每秒不超过20个请求,漏桶数burst为5,表示最大延迟请求数量不大于5。
#brust的意思就是,如果第1秒、2,3,4秒请求为19个,
#第5秒的请求为25个是被允许的。
#但是如果你第1秒就25个请求,第2秒超过20的请求返回503错误。
#nodelay,如果不设置该选项,严格使用平均速率限制请求数,
#第1秒25个请求时,5个请求放到第2秒执行,
#设置nodelay,25个请求将在第1秒执行。
11.location正则表达式的匹配
---------------------------------下面简单说明下nginx location匹配规则-------------------------------------------
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
server name 为虚拟服务器的识别路径。因此不同的域名会通过请求头中的HOST字段,匹配到特定的server块,转发到对应的应用服务器中去。