/auth
我将 nginx 配置为某些应用 URL(例如、等/api
)的反向代理/users
。我希望 nginx 拒绝所有其他请求并显示 404 或执行其他操作。
我的配置中现在有这个:
server {
listen 80;
error_page 404 /404.html;
location /404.html {
root static;
}
location /auth$ {
proxy_pass http://localhost:8080/auth;
proxy_redirect off;
}
location /api$ {
proxy_pass http://localhost:8080/api;
proxy_redirect off;
}
location /users$ {
proxy_pass http://localhost:8080/users;
proxy_redirect off;
}
}
当我访问任何匹配的网址时,一切正常,但是当我输入类似的内容时/abrakadabra
,它会显示一个加载旋转器,尝试加载某些内容,然后显示空白页,即使我有它的文件,并且在控制台中我看到它的 404 错误。
我在 access.log 中看到了这些请求。
我做错了什么以及如何解决?
答案1
添加
location / {
return 404;
}
在块的末尾server {}
,在所有之后location {}
。此外,您正在混合正则表达式和普通位置语法,符号$
是正则表达式,并且您的位置被定义为普通位置。