Nginx 负载均衡常见问题
那么,Nginx 负载均衡的通常配置会出现哪些问题呢?这里列出几种比较常见的问题:
- 客户端 IP 地址获取问题
- 域名携带问题
- 负载均衡导致 session 丢失问题
- 动态负载均衡问题
- 真实的 Realserver 状态检测
接下来,我们就重点讲解下 Nginx 作为负载均衡的这几个问题,值得一提的是,这五个问题中的动态负载均衡问题将在下一课时重点讲解,所以本课时就不再讲解了。
客户端IP地址获取问题
第一个问题是客户端 IP 地址获取问题,为什么会存在客户端 IP 地址获取问题呢?
我们来看这样一张模拟图,图中请求从用户到 Nginx,再到后端服务。我们可以看到用户的 IP 地址是 100.100.100.100,Nginx 的地址是 192.168.0.1,通过 Nginx 负载均衡到三台后端服务,它们的 IP 分别是 192.168.1.1、192.168.1.2、192.168.1.3。
那么客户端的 IP 地址为什么会无法被后端服务获取呢?原因是我们获取方式在Nginx的加入负载均衡后出现了差异,具体如下:
我们了解后端服务获取IP的方式,第一种方式是由后端服务通过 4 层 TCP 协议获取源 IP 地址,你会发现,通过这种方式,后端服务只能获取 Nginx 的 IP 地址,而无法获取到 100.100