服务器报500错误,查看nginx的error log,发现如下报错:
看起来似乎是连接数不够造成的,我查看了nginx.conf,相关配置为:
一般情况下,如果是生产环境,很有可能确实是由于并发数过大而造成的。
似乎调大这个配置数就够了,可我觉得不太对劲,因为我是在本地的测试环境遇到了这个问题,没啥并发啊。
以下是我的配置内容:
我希望在访问http://xxx.domain.com
的时候,自动代理到http://domain.com
,而后者再代理到这台服务器的1111端口。
经过细致测试和排查,最后恍然大悟,错误出现在:
这条指令会把请求头部的Host修改成xxx.domain.com,因为xxx.domain.com和domain.com都指向同一个服务器,所以代理之后,因为Host仍然是xxx.domain.com,所以又会回到同一条配置,这就造成了死循环,导致连接数迅速耗尽。
附注
以上三条指令经常是一起出现,因为在用nginx配置反向代理的时候,如果没有相关配置,真实服务器收到的所有请求的ip都是nginx服务器的ip,这样,真实服务器就无法拿到确切的客户端ip,而且还有可能触发同一ip的访问限制,所以要做这样的配置。
即使是平时经常耳熟能详的东西,也不见得任何时候都不会有问题,以后碰到问题,要多多思考,多多学习~