我希望任何以特定路径开头的传入 HTTP 请求(无论域名是什么)都发送到本地服务器。例如:
location /special/path/ {
proxy_pass http://127.0.0.1:8000/;
}
server {}
如果给定域名没有匹配的块,Nginx 会将请求路由到default_server
。但我需要请求总是被路由到本地服务器,即使server {}
找到匹配的块。
我该如何处理这个问题?
奖励:如果有一种方法可以在server {}
当前设置之外做到这一点default_server
,那就太棒了。
答案1
我认为你可能必须在每个服务器中配置一个合适的块。你可以使用包含而不是复制和粘贴来执行此操作。这应该在默认服务器中有效。
因此在每个服务器块中使用类似这样的内容
include /etc/nginx/fragments/path.conf
在 /etc/nginx/fragments/path.conf 中
location /special/path/ {
proxy_pass http://127.0.0.1:8000/;
}
请注意,您不应将其放在 sites-enabled 目录中,因为 nginx.conf 包含它们,并且在该上下文中它是无效的语法。
其他人可能有比这更好的方法,但我相信这会有效。