satisfy any
我在server
或块中遇到一个问题,location
导致所有客户端都被允许访问,据我所知这不是预期的行为。
server {
listen 80;
server_name raar.my.domain;
satisfy any;
allow 192.168.1.0/24;
deny all;
auth_basic "Private";
auth_basic_user_file /etc/nginx/conf.d/avs.creds;
location / {
proxy_pass http://192.168.1.13:8085;
}
}
在此状态下,我可以从外部主机 curl,它会将请求传递给代理。如果我更改any
为all
,它实际上会开始调用访问机制。
这让我很困惑,因为在 中的任何其他地方都没有出现allow
nor关键字,所以我不知道还有哪些其他访问处理程序可以满足。deny
/etc/nginx
satisfy any
调试日志未显示任何内容。
-V:
nginx -V
nginx version: nginx/1.2.7
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --add-module=/tmp/pubcookie_src/src/nginx
答案1
嗯,原来是酒吧饼干模块行为不当。
当正确答案是 NGX_DECLINED 时,它在访问阶段为其不负责的站点返回 NGX_OK(以及将其作为 int 而不是 ngx_int_t 返回)。
因为这个原因satisfy any
得到了满足。