【问题标题】:Why is nginx reverse proxy doing a 301 to itself?为什么 nginx 反向代理对自己做 301?
【发布时间】:2020-04-28 17:51:53
【问题描述】:

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

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

我在 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?

【问题讨论】:

  • 您是否为 WordPress 配置了正确的站点 URL?见changing the site URL
  • 就是这样!非常感谢:)

标签: wordpress docker nginx reverse-proxy nginx-reverse-proxy


【解决方案1】:

对于那些遇到同样事情的人:@Richard Smith 在问题的评论中提供了正确的答案。您需要在 Wordpress 的设置/常规下更改站点 URL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    • 2019-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多