国内一台主服务器放在阿里云,用 nginx 服务国内客户
另外一台阿里云 HKB 的服务器,用 nginx 反代国内的主服务器来服务国外客户
然后郁闷的事情出现了,阿里云 HKB 的那台 nginx,反代的是国内 nginx 服务器的 80 端口,刚开始没有问题,然后大约一个小时以后就开始 502, 无论是重起 nginx 还是重启服务器都没用. 因为这台服务器上就只有 nginx 服务,所以也不会有美国服务器 php-fpm 的问题. 无意中我把反代的源端端口改成 88 (源服务器开了 80,88 两个 http 服务端口),监控了好几天,502 的问题就没有了
然后同样的 nginx 配置我放在香港其他的云上,同样是反代 80 端口,一直都没有任何问题
这个问题让我郁闷了快一个星期了,就是查不到问题在哪
很明显的是我的 nginx 配置没有问题,难道是反代 80 端口,触发了阿里云的什么保护规则?
HKB 的机器 502 时的 nginx error log 看了没?
看了
就是(error 104: Connection reset by peer) while reading response header from upstream
google 上写的都是什么 php-fpm, fastcgi 缓存什么的
80 端口可能有较频繁或者强度较高的检测(阿里云或墙),而这个检测有时可能抽风导致把你给误 RST 了,或者回源时恰好触发了关键词
个人建议:源站启用 https,反代同样走 https 回源。
嗯看来应该是阿里云的检测。。。因为我用其他的香港的服务器,就没有任何问题。。
在 HK 的反代上,我用的是 http IP 的形式,如果改成 https 反代的形式, 这个对 IP 的 https,需要买证书吗?还是自己签发一个内部使用就可以了
自签就行
自己签就可以,或者用 ssl-cert 这个包(如果是 debian 系发行版)生成的 snakeoil 就可以了
nginx 走 https 回源时,默认并不验证证书身份,而你这里也并没有验证的必要
明白了, 这个是需要对 IP 使用 ssl 对吧? 貌似我还没见过对 IP 进行 ssl 的
并不是对 IP 使用 SSL,你回源时 proxy_pass https://blabla 这里的 blabla 根本也不会作为 Host 头传回去的,这个证书和域名没有关系
既然用 88 端口没事何不就用 88 好了,用 ssl 还有性能损失
同一 ip 访问频次过高,触发云盾之类的了。要么关了云盾试试看,或者直接换个 ip 就是了
我一般设置回源时,是 proxy_pass http://42.57.XX.XXX 我去试试
强迫症。。。
我也一直遇到这个问题,小鸟云香港,束手无策
云盾是关闭不了的…一旦上了阿里云 基本上就告别别家的服务了。
可以试试非 80 端口.
443 https 端口也一样
放在国内云上的 HTTP 服务最好通过已备案的域名来访问
你云盾要放个白名单,然后要用 https。
我就是用的 88 端口的 http,一直没有问题
我去试试 https
阿里云的国际板,没有云盾白名单
国内的要放。。
我国内放了。。貌似没啥鸟用。。
云服务器毕竟是服务器集群虚拟化出来的,可以试试独立服务器,我这里有 bgp 三线香港机,用不断线,售后免费。