为什么 nginx 反向代理对自己做 301?

Why is nginx reverse proxy doing a 301 to itself?

我有一个 Nginx 运行 作为反向代理,在同一台机器上有一个 Wordpress 网站。两者都是 docker 个容器。我的 public IP 有一个带 A 记录的域,并且我启用了端口转发,以便将端口 80 转发到主机。只有 Nginx 映射到该机器的端口 80,Wordpress 的端口(也是 80)未映射到主机端口,并且在通过 Nginx 之外无法访问。

到目前为止一切顺利。如果我使用本地主机 IP 连接到该网站,它就可以工作(例如,nginx 正确地代理我访问该网站)。但是,如果我使用域,那么它会对主机的本地 (!) 地址执行 301。因此,我在浏览器中输入 exampledomain.com,它会将我重定向到 192.168。1.x(主机的本地 IP 运行 nginx 和 wordpress 容器)。

我在 Google 上搜索了很多,但不幸的是没能在这个问题上找到正确的答案。我假设我在 Nginx 的配置中做错了,如下所示:

events {}
http {
  server {
    listen 80;
    server_name exampledomain.com www.exampledomain.com;

    location / {
      proxy_pass http://wordpress;
      proxy_pass_request_headers on;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $host;
    }
  }
}

这仍然只在端口 80 上,但我计划确保将任何端口 80 请求转发到端口 443。但是,我似乎无法完成第一步,所以让我们先关注一下.我如何确保它不会将我的请求重定向到本地 IP 地址,而是实际保留浏览器地址栏中的 exampledomain.com?

对于那些 运行 相同的人:@Richard Smith 在问题的评论中提供了正确答案。您需要在 Wordpress Settings/General 下更改站点 URL。