我见过的大多数配置和示例,后端服务器都在同一台机器或同一网络上。有没有人通过 WAN 对位于不同物理位置的后端服务器进行过这样的操作?如果有,您的经验是什么?
答案1
您可能需要调整proxy_connect_timeout
和proxy_read_timeout
。请记住,连接超时不能超过 75 秒,因此如果您的后端真的很慢,它可能无法工作。
答案2
由于连接始终必须通过反向代理流向远程后端并返回,因此您可能会获得糟糕的性能。正如 coredump 所述,您可能需要调整代理设置以避免超时。是否不能将反向代理放在与后端相同的网络上?
答案3
如果你想跨地理位置实现负载平衡,有更好的方法可以实现,例如3crowd。使用上游代理只会减慢速度,您应该将用户直接发送到资源,而不是通过 Nginx 将其传回。
答案4
我目前使用三个 nginx 节点通过循环 DNS 向第三方广告投放解决方案执行此操作。我们需要绕过一些边缘用户的限制,而代理似乎是最好的选择。由于我们的广告调用非常小,并且我们连接的解决方案非常强大,因此与正常请求相比,我们并没有看到速度大幅下降。不过,Coredump 是正确的,需要对代理设置进行一些调整,以确保请求不会挂起过长的时间。