请教一个 Nginx 重定向的问题:一台机器配置 2 个二级域名,导致重定向混乱

2017-11-18 12:31:15 +08:00
 ericgui
首先请看这个代码:

# Redirect non-https traffic to https
if ($scheme != "https") {
return 301 https://$host$request_uri;
} # managed by Certbot


这是照抄左耳朵耗子的博客上的代码

我目前是一台机器上配置 2 个二级域名,上面这个是 a.website.com ,那么就是 https://a.website.com
如果直接输入 a.website.com 会自动重定向到 https://a.website.com

b.website.com(同一个域名,不同的二级域名),没有配置 https,直接打开 b.website.com ,没问题,
但如果打开 https://b.website.com ,竟然会重定向到 a.website.com

非常邪门

google 都不知道用什么关键词查询

特此请教
2871 次点击
所在节点    程序员
9 条回复
zlfzy
2017-11-18 12:35:55 +08:00
你另外弄一份 https://b.website.com/的 conf 文件监听 443 端口,不用 301
just1
2017-11-18 12:38:49 +08:00
因为 b 没有配置 https,nginx 会使用默认 https 站点的配置(就是 a )
ericgui
2017-11-18 13:06:54 +08:00
@zlfzy 哦,端口是 443,但其他配置是一样的,最后还是打开了 http 而已,对吧?是这意思么
zlfzy
2017-11-18 13:08:20 +08:00
@ericgui 要不你试试再加这一段,return 301 http://$host$request_uri; 看看能不能把 https 强制跳转 http
yangg
2017-11-18 14:25:26 +08:00
正常情况,https 不存在会走第一个,lz 解决了告诉下我
ericgui
2017-11-19 05:53:38 +08:00
@yangg 没解决。。。。哎。。。。
ericgui
2017-11-19 05:54:02 +08:00
@zlfzy 你这个方法是网上的,我试了,结果 https 就打不开了
dorothyREN
2017-11-19 16:46:07 +08:00
配置不对,找不到对应的域名的话会直接转到默认主机。
blless
2017-11-20 00:27:42 +08:00
301 没记错是永久重定向,浏览器貌似会缓存这个记录,当下次打开的时候 浏览器其实并没有真正请求到你的后端,而是因为你最近请求过这个站点,所以浏览器直接把缓存的记录给你了。建议每次测试开隐身窗口测试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/407446

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX