1 | server { |
同一个域名可以有不同的跳转,location不同即可
Nginx故障转移而导致请求重复
注意点:如果请求超时(nginx timeout时间设置为3秒,应用接口比如5秒后才有响应),GET
请求会重复分发,POST
请求会幂等,所以GET请求不能用在新增和删除数据,只能用在查询。但是如果服务器确实挂了,POST请求还是会转发的
Nginx故障转移导致的服务器雪崩
场景
高并发场景下,A机器每秒有5000请求超时,故障转移到B、C机器,而导致原本已经满负荷的B、C机器雪上加霜而发生雪崩
解决
- 设置
proxy_next_upstream_tries
,限制将请求传递到下一个服务器的可能尝试次数。默认为0,即一直传递下去 - 设置
proxy_next_upstream_timeout
,重试超时时间,过了时间之后就不再进行重试
反向代理和正向代理
- 正向代理
正向代理:比如说VPN,我国访问不了谷歌,但是通过VPN代理即可访问,即内网访问外网
反向代理:外网通过NG访问内网,优点:保证内网的安全,负载均衡
总结
正向代理即是客户端代理, 代理客户端, 服务端不知道实际发起请求的客户端
反向代理即是服务端代理, 代理服务端, 客户端不知道实际提供服务的服务端