我有 2 台 VPS 服务器,其中装有 PHP 应用程序,它们都使用同一个数据库(在第 3 台服务器上)。我想让第 4 台服务器仅使用 nginx 作为负载均衡器,以尝试将流量“划分”为两部分。
我的问题是 - 如果 nginx 收到请求,尝试将其转发到其中一台服务器但该服务器没有响应,会发生什么情况。它会尝试将其发送到第二台服务器吗?
对我来说,不丢失任何请求非常重要,因此如果 Server1 发生故障,Server2 将立即收到相同的请求。nginx 的工作方式是这样的吗?如果不是,我可以使用 nginx 来实现吗?还是我应该尝试使用其他解决方案?
问候。
答案1
您可以设置proxy_next_upstream
参数来设置 nginx 在另一个上游代理服务器上重试请求时的错误条件。
例如:
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;