我有一个这样的 Nginx 服务器配置:
location / {
proxy_pass http://backend/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
limit_except GET POST{
deny all;
}
}
并且我想拒绝任何对 URL 的访问,例如/path/subpath
。我尝试使用嵌套位置来实现,例如:
location / {
....
location ^~ /path/subpath {
deny all; # another option is return 403/404
}
}
但它不起作用。还尝试了根位置部分之外的拒绝部分。仍然,Nginx 准确地将任何请求重定向到直接上游并忽略 conf 中的设置。
我遗漏了什么?