我们可以通过设定iptables防火墙来做到让特定的IP访问网站,但是有时候需要网站可以全部访问,但是只针对某个页面(比如管理页面)只运行特定IP访问,这个时候可以用nginx来设置
假设需要让/admin只允许202.202.xxx.0-255来访问,而且如果不允许的IP访问,会显示404,以为是网页不存在,nginx如下设定即可
server {
#省略部分配置
#这样做,让403 forbiden 也显示成404,外面访问的人以为 page 不存在
error_page 403 404 /404.html;
location = /404.html
{
internal; #return 404
}
#让login.action只有特定IP能访问
location = /admin
{
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#允许访问的IP或者IP地址段
#allow 202.202.xxx.3;
allow 202.202.xxx.0/24;
deny all;
}
}
文章评论