阻止Nginx的所有人,除了办公室的IP

是否可以configurationnginx,使所有的网站只能从办公室的IP地址访问?

这是一个开发服务器,在某些站点(太多不能一个一个地阻塞)偶然有一些意见和活动正在进行,我想阻止除了来自办公室IP的办公室的人之外的每个人的访问。

有什么办法吗?

为什么需要防火墙? allow/deny指令不仅可用于location部分,也可用于http部分。

 http { allow 192.168.1.10; # office ip deny all; server { server_name acme1.com; # ... } server { server_name acme2.com; # ... } } 

听起来更像是一个防火墙的工作。 假设你正在运行Linux,你可以使用iptables。

 iptables -A INPUT -p tcp --src source_address --dport destination_port -j ACCEPT iptables -A INPUT -p tcp --dport destination_port -j DROP 

我会使用iptables阻止除了你的办公室的所有IP端口80。

如上所述, iptables是一个选项。

作为替代,您可以使用Nginx的ngx_http_access_module来限制访问。

假设你的办公室networking是192.168.1.0/24

 location / { allow 192.168.1.0/24; # Office network deny all; ... ... } 

要么

 location / { allow 192.168.1.10; # James allow 192.168.1.11; # John deny all; ... ... } 

注意:使用这种方法,不允许IP的用户将得到403 ,而不是“站点不可达”。

http://nginx.org/en/docs/http/ngx_http_access_module.html