这几天在使用Nginx反向代理我的博客的时候出现了几个问题,我把他们一一的记录下来,以后换前端服务器的时候说不定要用到。

禁止直接访问后端

由于我的后端服务器用的家用宽带,运营商给的动态IP,于是我也只能用域名+端口访问,如此一来就有后端直接暴露在公网的危险。

而除了在路由器的防火墙设置转发规则外,还可以通过Nginx直接设置指定某个IP才能访问。于是我决定在Nginx配置中加一个双保险。

可以直接在nginx.conf中添加全局配置,也可以在某个vhost.conf中为某个站点单独配置。

1
2
3
4
5
6
7
server {
......
root /var/www/html;
allow xxx.xxx.xxx.xxx;
deny all;
......
}

上面的代码指定了XXX.XXX.XXX.XXX的IP地址才能访问这个站点,其他的全部拒绝。但是配置的时候要注意一定不能弄反allow和deny的顺序,nginx是从上到下匹配规则的,如果弄反,当已经匹配到deny all;的时候,就不会再查找是不是在allow列表里了。

出现504 Time-Out错误

昨天和今天早上起床,我都发现博客打不开,出现504错误。昨天我以为是端口被电信封了,换了个端口,结果就能访问了,于是就没有深究原因。

而今天,起来又是504错误,于是我就在网上搜索了一下。

网络上有的文章说,是由于php长时间运行导致出现504错误的,但是我的博客前几天连续运行了4、5天都没问题啊。按照网络上的文章修改了一下proxy_send_timeoutproxy_read_timeout的时间,博客又能正常访问了。

然而我发现事情并没有这么简单,博客恢复正常访问的原因大概率是因为我Reload了Nginx的原因,昨天和今天一定发生了什么事,导致早上起来博客报504错误。

上下求索了一番后发现,因该是由于家里的IP地址发生了变化,代理服务器没有对域名进行重新解析造成的,一直访问原来那个IP的端口,自然会报504错误。而reload一下的话,nginx重新解析域名,那么问题就解决了。

这个问题想要彻底解决,需要在代理服务器上设定一个定时解析域名的程序,发现IP地址发生变化的话,就Reload一下Nginx。不过这个问题对于我的能力来说已经超纲了,我就只有继续手动操作吧,发现博客报504之后来reload一下,反正博客也主要是我自己来看了。


本站由 澄哥 使用 Stellar 主题创建。


本页点击量本站点击量次。
您是本站的第个小伙伴
本站已稳定运行