gpt4 book ai didi

redirect - nginx 重定向所有流量,而不仅仅是 server_name

转载 作者:太空宇宙 更新时间:2023-11-03 13:24:17 26 4
gpt4 key购买 nike

我正在使用 nginx 作为多个节点服务器的反向代理。我最近将 SSL 添加到其中一个项目。

我的配置看起来有点像这样:

# domain1
server {
listen 443 ssl;
server_name *.domain1.com
location / {
proxy_pass http://123.456.789.012:3001;
# ... other proxy stuff
}
}

server {
listen 80;
server_name *.domain1.com;
return 301 https://$host$request_uri;
}

这对 domain1 非常有效。 HTTPS 有效,HTTP 重定向到 HTTPS。

但是,这以某种方式影响了同一服务器上的另一个 域。这是它的配置:

# domain2
server {
listen 80;
server_name *.domain2.com;

location / {
proxy_pass http://123.456.789.012:3002;
# ... all the other proxy stuff
}
}

发生的事情是,当我转到 http://domain2.com 时,我被重定向到 https://domain2.com ,它提示说我没有该域的 SSL 证书。

当我从 domain1 中删除第二个服务器 block 时,将 80 上的流量转发到 https 的服务器 block ,domain2 再次工作。

在我看来,nginx 忽略了 server_name 属性,并将所有流量转发到 HTTPS。我也尝试过使用硬 URL:

server_name domain1.com www.domain1.com

我正在尝试做一些非常简单的事情,所以一定有一些明显的问题,但我看不到!

最佳答案

正如@grochmal 所指出的,我相信这是一个简单的缓存问题。通过切换到 302 Found 重定向而不是 301,并使用新的浏览器,我能够获得正确的结果。

我还更正了通配符,这可能是原来的问题。

关于redirect - nginx 重定向所有流量,而不仅仅是 server_name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38075635/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com