今天碰到一个国内被和谐掉的站点感到很有意思.
于是想避免每天扶梯子去登录这个站点,就想到了nginx 的 反向代理。 nginx 的反向代理平时百用百灵,可是今天死活不灵了.
查看了一下此站的源代码,发现静态文件全部使用单独的一个域名来表示,nginx 反代已经很完美的解决掉了静态部分,但是静态部分例如css, js 等等,死活也加载不出来。。查看nginx 的error 日志,发现 nginx 的 间断性的出现 502 错误,再仔细一看,nginx 说upstream 总是提早关闭TCP 链接。。。我起初以为是网络的问题,就在洛杉矶的独立服务器上拆出来一个VPS用来专门反代这个静态文件的域名,仍然出现502 错误。。。
这个时候才想到,是不是这个域名限制了referrer 来源?????
于是赶紧在nginx 的config 代码里面加上proxy_set_header Referer $host; 重启nginx, 问题圆满解决。。。
下次遇到同样问题的时候,可以先在firefox 的livehttp 的 这个扩展当中,慢慢的仔细的看一下 http response 是怎么回事,然后在nginx 的配置文件中根据情况写出相应的配置方案.