location / {
# if($remote_addr != 99.99.99.99){
return 503;
# }
}
当前 503 页面运行良好,但如果我尝试添加 IP 排除,如上所示
nginx 重启时出现以下错误
nginx: [emerg] unknown directive "if($remote_addr" in /etc/nginx/sites-enabled/mysite:74
所有在线指南都指出要使用上述 $remote_addr,有什么原因导致我的不起作用吗?
更新
目前这向所有访问者显示维护,包括 99 个访问者(是的,我用我的真实 IP 替换了它)。
map $remote_addr $condition {
default 1;
99.99.99.99 0;
}
Server{
location / {
if ($condition) {
return 503;
}
}
}
同样使用 remote_host 我得到 nginx 未知的“remote_host”变量,
仍然无法让它将我的 IP 从 503 中排除
答案1
我用了nginx 地图模块因定期维护例外情况。
例如:
- 将 $remote_host 映射到 $maint_except
map $remote_host $maint_switch { default 1;
99.99.99.99 0;
}
- 检查 $maint_switch 而不是 $remote_addr
location / { if ($maint_switch) { return 503; } }