如何正确设置 Nginx 作为负载均衡器后面的反向代理,将所有 Wordpress 请求路由到外部服务器?

如何正确设置 Nginx 作为负载均衡器后面的反向代理,将所有 Wordpress 请求路由到外部服务器?

我们在服务器 #1 上运行了一个现有的 SPA 应用程序。我们构建了一个托管在 Kinsta 服务器(服务器 #2)上的 Wordpress 网站。市场营销部门希望启动新网站并将 50% 的流量引导至该网站,同时将 50% 的流量引导至旧 SPA。

我的解决方案:我使用 Cloudflare 设置了一个负载均衡器,以在两个服务器之间平等分配流量。这很有效。然后我需要让服务器 #1(现有的 Nginx 配置为反向代理)处理对 /wp-* 的所有请求并将它们发送到服务器 #2。

我当前的 Nginx 位置块

location ~* /wp-(.*)$ {
    proxy_pass         https://{{server #2 ip address}}/wp-$1$is_args$args;
    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
  }

问题:虽然这种方法有点管用,但许多请求的文件都返回 404,而其他一些文件则加载正常。以下是一些示例 URL 及其状态代码。

https://{{domainname}}/wp-content/plugins/wordpress-seo/css/dist/wpseo-dismissible-1500.css 200 https://{{domainname}}/wp-content/plugins/elementor/assets/js/admin.min.js 404

我已检查这两个文件确实存在于服务器#2上。

有人能推荐一个可以解决这个问题的 Nginx 配置吗?我尝试过使用重写和 302(没有尝试 301),但这并不能解决问题。

相关内容