描述:
目前有两台机器,在此分别命名为 A 和 B,A 的 IP 地址为 172.17.114.2(nginx 1.20.0),B 的 IP 地址为 172.17.115.2(nginx 1.19.8)),均使用宝塔
有两个站,C: example.com 和 D: blog.example.com,内容不一样
在 B 分别添加了 example.com 和 blog.example.com 站点,启用了 SSL,将 C 和 D 解析到 B 后访问正常。
在 A 也分别添加了 example.com 和 blog.example.com 站点,启用了 SSL,两站均设置了反向代理,配置文件如下:
- #PROXY-START/
location~* \.(gif|png|jpg|css|js|woff|woff2)$
{
proxy_pass https://172.17.115.2;
#B 的 IP 地址
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
expires 12h;
}
location /
{
proxy_pass https://172.17.115.2;
#B 的 IP 地址
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
add_header X-Cache $upstream_cache_status;
#Set Nginx Cache
add_header Cache-Control no-cache;
}
#PROXY-END/
将 D: blog.example.com 的解析切换到 A: 172.17.114.2 之后,访问 https://blog.example.com 时显示的却是 example.com(C 站)的内容,而访问 https://blog.example.com/xxx 显示的则是正常的 https://blog.example.com/xxx 的内容。
请问这是怎么回事?
热议
2楼 iks 昨天23:02
目前已定位到 A 服务器的 nginx 的问题,正在尝试重装ngx
3楼 6700 昨天23:06
这描述的...看半天都没看明白
4楼 6700 昨天23:07
试试将代码最简化分别测试,慢慢排查
5楼 表弟 昨天23:10
hosts文件里没添加域名跟ip吧?
6楼 gr58046576 昨天23:11
没看懂,只知道一个站你是想反代多少个域名?
7楼 iks 昨天23:26
hosts文件里没添加域名跟ip吧?
不用解析,这种反代是直接向目标IP发送host,然后SNI就炸了(?)
8楼 yjlml 昨天23:39
我比较好奇
你都说了
C: example.com 和 D: blog.example.com,内容不一样
你怎么知道
访问 https://blog.example.com 时显示的却是 example.com(C 站)的内容,而访问 https://blog.example.com/xxx 显示的则是正常的 https://blog.example.com/xxx 的内容。
访问https://blog.example.com 时显示的却是 example.com(C 站)的内容呢?
9楼 iks 昨天23:42
我比较好奇
你都说了
你怎么知道
我就直说了吧
你试试访问 https://blog.iks.moe, https://blog.iks.moe/index.php 和 https://signaliks.com 看看有什么问题
10楼 yjlml 昨天23:46
我就直说了吧
你试试访问 https://blog.iks.moe, https://blog.iks.moe/index.php 和 https://signaliks. ...
https://blog.iks.moe和https://blog.iks.moe/index.php 是同一个站
https://signaliks.com是另一个站 但是IP都一样 都是240.204的
12楼 yjlml 昨天23:55
是的,但是
https://blog.iks.moe 和 https://signaliks.com 内容是一样的,而 https://blog.iks.moe/ind ...
但是我也没看到你https://signaliks.com/index.php 有内容啊
你是word里面设置的问题吧
我怎么看都是你WP的主题的问题你换一个主题 没有单页做首页的试试
13楼 iks 昨天23:57
但是我也没看到你https://signaliks.com/index.php 有内容啊
你是word里面设置的问题吧
...
确实啊,所以说反代出现了问题,,,
14楼 iks 昨天23:59
但是我也没看到你https://signaliks.com/index.php 有内容啊
你是word里面设置的问题吧
理论上,https://blog.iks.moe 的内容和 https://blog.iks.moe/index.php 的内容是一致的,https://signaliks.com 与前两者不一致
实际上,https://blog.iks.moe 的内容和 https://signaliks.com 的内容一致,而 https://blog.iks.moe/index.php 和前两者不一样
注,blog.iks.moe 和 signaliks.com 的源站是同一个
15楼 kennyS 16小时前
很明显是你没理解nginx的匹配规则,如果你想使用B作为后端一个网站至少添加两个域名记录,比如cdn.domain.comwww.domain.com , cdn.domain.com作为A服务器反代回源。
或者,在后端B多站点情况下,你一定要使用ip回源:
1,简单就是使用不同的端口。
2,你可以在B建立一个ip的站点,并且设置为de**t_server,然后自己编写lua等再重新匹配。
可以去了解下nginx的匹配规则 http --> server --> location ...
16楼 6700 9小时前
很明显是你没理解nginx的匹配规则,如果你想使用B作为后端一个网站至少添加两个域名记录,比如cdn.domain.c ...
nginx使用ip回源木有问题,是根据header的host去匹配站点的,只是ssl请求没有sni,不然你让upstream模块情何以堪
17楼 6700 9小时前
是的,但是
https://blog.iks.moe 和 https://signaliks.com 内容是一样的,而 https://blog.iks.moe/ind ...
看起来问题已经解决了,所以是哪里出了问题啊?缓存吗
18楼 iks 17分钟前
看起来问题已经解决了,所以是哪里出了问题啊?缓存吗
恢复了,目测是缓存的问题
采取的方案是 DD 系统然后使用 LNMP.org 的一键包编译的 nginx,后手动配置反向代理
申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。