【nginx】nginx通过配置文件允许uptimerobot的请求
问题说明
前几天,我给我的artalk上了IP屏蔽,只放行国内IP,不允许任何国外的IP地址评论。
【Nginx】nginx通过配置文件阻止海外ip访问 | 慕雪的寒舍
然后就发现了一个问题,我使用的uptimerobot这个在线状态监控程序是国外的,它的请求自然也是通过海外IP发起的,此时就会被我服务器的nginx拦截,导致403,uptimerobot认为403也是无法访问,service down了。
解决
之前通过折腾,已经知道了如何使用nginx的配置文件来allow或者deny一系列ip地址,那么uptimerobot的这个问题也很好解决:只要我们知道uptimerobbot的请求来源ip,那么将其写入一个如下类似的nginx配置文件,再在具体的location中include,放行对应ip地址即可。
1 | allow uptime-robot-ip1; |
我在uptimerobot的官网找到了它们的ip地址列表:Locations and IPs | UptimeRobot
txt文件也有的:
用如下脚本来实现
1 | !/bin/bash |
将其写入一个uptimerobot.sh
文件,使用如下命令执行它
1 | sh uptimerobot.sh |
这个脚本会在当前目录里面下载uptimerobot的这个IPv4.txt,并以nginx的形式写为allow,最后在/etc/nginx
里面创建一个软连接 /etc/nginx/black_uptime.conf
文件,文件内容如下
1 | allow 18.116.158.121; |
随后我们进入nginx的配置文件,在对应站点配置文件的location里面,include这个配置文件就可以了
1 | location / { |
添加之后,重启nginx,配置就生效啦
1 | systemctl restart nginx |
如下图,uptimerobot已经可以正常请求和监看我的artalk评论页面了
使用类似的思路,你可以通过nginx实现让你的站点只允许CDN服务商的IP回源,禁止直接访问。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 慕雪的寒舍!
评论