我看到许多教程使用内部 IP 来定义上游:
upstream MyUpstream {
server 10.0.0.201 weight=3;
server 10.0.0.202 weight=2;
server 10.0.0.203;
}
如你所见,10。。.* 是内部 IP。我不明白。它不应该是某个服务器的外部 IP 吗?
我的意思是,如果upstream block里的服务器都是内ip,那就意味着都在一个真实服务器里,那么设置这样的负载均衡就没有意义了。
答案1
不确定您所说的“内部 IP”是什么意思,但如果您问为什么这些是 RFC 1918 中定义的“私有互联网”的 IP:
我想,许多教程都nginx
面临着邪恶的公共互联网,而backends
/upstreams
不应该(例如出于安全原因)直接暴露。
使用您的示例:10.0.0.0/8 未公开路由,因此无法直接命中 / backends
;upstreams
所有请求都流经nginx
。
我的意思是,如果upstream block里的服务器都是内ip,那就意味着都在一个真实服务器里,那么设置这样的负载均衡就没有意义了。
我怀疑这毫无意义,至少你的“这意味着它们都在一个真实的服务器中”的假设是错误的。你为什么这么认为?