对于我的网站,我希望能够提供一个维护503页面,但有一个ip-addresses的白名单,可以正常使用该网站
我是否必须在lua中制作这样的东西?
我看到一些像
这样的问题和
How can I setup a custom 503 error page in NGINX?
解释了如何单独执行此操作,但我希望将它们组合在一起,以便我可以将网站脱机以进行外部世界,但仍然可以从某些IP地址进行正常测试
答案 0 :(得分:2)
您可以使用ngx_http_geo_module:
geo $denied {
default 1; # nobody is allowed access by default
# but people from the following networks/ip addresses are allowed access
include whitelist;
127.0.0.1 0;
192.168.1.0/24 0;
}
server {
location / {
if ($denied) {
return 503;
}
}
}
答案 1 :(得分:0)
不需要lua,只需使用ngx_http_access_module:
location / {
deny 192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
allow 2001:0db8::/32;
deny all;
}
适用于位置块以及以下任何一个:http,server,location,limit_except。
如果您坚持使用lua,请按照instructions to get lua working进行操作,然后您可以使用类似openresty自述文件中的示例:
location / {
access_by_lua_block {
-- check the client IP address is in our black list
if ngx.var.remote_addr == "132.5.72.3" then
ngx.exit(ngx.HTTP_FORBIDDEN)
end
}
}