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

问题描述 投票:0回答:1

我有一个Nginx作为反向代理运行,在同一台机器上有一个Wordpress网站。两者都是docker容器。我有一个域名,A-记录到我的公网IP,我启用了端口转发功能,使80端口转发到主机。只有Nginx被映射到该机器的80端口,Wordpress的端口(也是80)没有被映射到主机端口,通过Nginx之外无法到达。

到目前为止一切正常。如果我使用本地主机IP连接到网站,它就能正常工作(如nginx正确代理我到网站)。然而,如果我使用域名,那么它就会对主机的本地(!)地址进行301。所以,我在浏览器中输入exampledomain.com,它把我重定向到192.168.1.x(运行nginx和wordpress容器的主机的本地IP)。

我在谷歌上搜索了很多,但很遗憾,一直没有找到正确的答案。我假设我在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 docker nginx reverse-proxy nginx-reverse-proxy
1个回答
0
投票

对于那些遇到同样问题的人。@Richard Smith在问题的评论中提供了正确的答案。你需要在Wordpress的SettingsGeneral中更改网站的URL。

© www.soinside.com 2019 - 2024. All rights reserved.