我希望你能帮助我,因为我不明白为什么会发生这种情况。我有以下 2 个域:
- alpha.com
- beta.com
它们都指向同一个服务器IP:
- xxxxx
我在这个服务器上运行了一个 nginx。在我的防火墙上,我将端口 80 和 443 转发到该服务器的内部 IP;
- 192.168.1.2
两个域名都有自己的证书。
以下是这两个域的服务器配置:
- alpha.com:http://pastebin.com/u9absNMe
- beta.com:http://pastebin.com/m7dV2cqk
问题:这里的问题是,当我访问 alpha.com 时,服务器会将我重定向到 http.s://alpha.com 并加载 alpha.com 的内容,到目前为止一切正常。当我在浏览器上打开新选项卡并输入 beta.com 时,浏览器上的 URL 更改为 http.s://beta.com,但会加载 alpha.com 的内容。
我该如何告诉 nginx 根据浏览器中输入的 URL 为每个域提供正确的目录并仍保留 https?
谢谢。
答案1
您的两个虚拟主机都指向环回地址上的同一个端口。
你在听什么http://127.0.0.1:2368
?
您需要配置该服务以监听两个不同的端口,并将每个 nginx vhost 代理到其自己的唯一端口。
答案2
答案3
实际上,我发现了自己的错误,我在一个域上运行了 ghost 博客平台,在另一个域上运行了 wordpress。我通过从 wordpress 站点的 nginx 配置文件中删除以下代码解决了该问题。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header HOST $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:2368;
仅供参考,@MyNameIsBoring 提到的端口 2368 是 ghost 使用的端口,因此我设置了反向代理以在 80 和 443 上提供服务。显然,这对 wordpress 不起作用,通过删除该部分代码,一切都会开始正常工作。