这个 nginx 的问题让我郁闷了

2017-05-13 20:22:35 +08:00
 hippoking
国内一台主服务器放在阿里云,用 nginx 服务国内客户
另外一台阿里云 HKB 的服务器,用 nginx 反代国内的主服务器来服务国外客户

然后郁闷的事情出现了,阿里云 HKB 的那台 nginx,反代的是国内 nginx 服务器的 80 端口,刚开始没有问题,然后大约一个小时以后就开始 502, 无论是重起 nginx 还是重启服务器都没用. 因为这台服务器上就只有 nginx 服务,所以也不会有 php-fpm 的问题. 无意中我把反代的源端端口改成 88 (源服务器开了 80,88 两个 http 服务端口),监控了好几天,502 的问题就没有了

然后同样的 nginx 配置我放在香港其他的云上,同样是反代 80 端口,一直都没有任何问题

这个问题让我郁闷了快一个星期了,就是查不到问题在哪

很明显的是我的 nginx 配置没有问题,难道是反代 80 端口,触发了阿里云的什么保护规则?
4535 次点击
所在节点    NGINX
24 条回复
ericFork
2017-05-13 21:34:13 +08:00
HKB 的机器 502 时的 nginx error log 看了没?
hippoking
2017-05-13 21:37:59 +08:00
@ericFork #1 看了

就是(error 104: Connection reset by peer) while reading response header from upstream

google 上写的都是什么 php-fpm, fastcgi 缓存什么的
ericFork
2017-05-13 21:41:35 +08:00
@hippoking #2 80 端口可能有较频繁或者强度较高的检测(阿里云或墙),而这个检测有时可能抽风导致把你给误 RST 了,或者回源时恰好触发了关键词

个人建议:源站启用 https,反代同样走 https 回源。
hippoking
2017-05-13 21:44:06 +08:00
@ericFork #3 嗯看来应该是阿里云的检测。。。因为我用其他的香港的服务器,就没有任何问题。。
hippoking
2017-05-13 21:48:10 +08:00
@ericFork #3 在 HK 的反代上,我用的是 http IP 的形式,如果改成 https 反代的形式, 这个对 IP 的 https,需要买证书吗?还是自己签发一个内部使用就可以了
pubby
2017-05-13 21:53:48 +08:00
@hippoking 自签就行
ericFork
2017-05-13 21:56:04 +08:00
@hippoking #5 自己签就可以,或者用 ssl-cert 这个包(如果是 debian 系发行版)生成的 snakeoil 就可以了
nginx 走 https 回源时,默认并不验证证书身份,而你这里也并没有验证的必要
hippoking
2017-05-13 21:58:59 +08:00
@ericFork #7 明白了, 这个是需要对 IP 使用 ssl 对吧? 貌似我还没见过对 IP 进行 ssl 的
ericFork
2017-05-13 22:02:06 +08:00
@hippoking #8 并不是对 IP 使用 SSL,你回源时 proxy_pass https://blabla 这里的 blabla 根本也不会作为 Host 头传回去的,这个证书和域名没有关系
doubleflower
2017-05-13 22:05:48 +08:00
既然用 88 端口没事何不就用 88 好了,用 ssl 还有性能损失
akira
2017-05-13 22:09:22 +08:00
同一 ip 访问频次过高,触发云盾之类的了。要么关了云盾试试看,或者直接换个 ip 就是了
hippoking
2017-05-13 22:10:10 +08:00
@ericFork #9 我一般设置回源时,是 proxy_pass http://42.57.XX.XXX 我去试试
hippoking
2017-05-13 22:12:06 +08:00
@doubleflower #10 强迫症。。。
takashiki
2017-05-14 13:00:55 +08:00
我也一直遇到这个问题,小鸟云香港,束手无策

rootx
2017-05-14 16:07:49 +08:00
云盾是关闭不了的…一旦上了阿里云 基本上就告别别家的服务了。
hippoking
2017-05-14 18:34:14 +08:00
@takashiki 可以试试非 80 端口.
takashiki
2017-05-14 19:04:06 +08:00
@hippoking #16 443 https 端口也一样
xjchengo
2017-05-14 19:10:29 +08:00
放在国内云上的 HTTP 服务最好通过已备案的域名来访问
lslqtz
2017-05-14 20:51:28 +08:00
你云盾要放个白名单,然后要用 https。
hippoking
2017-05-14 23:48:56 +08:00
@takashiki #17 我就是用的 88 端口的 http,一直没有问题

我去试试 https

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

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

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

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

© 2021 V2EX