Nginx proxy_pass 层次结构
Nginx proxy_pass hierarchy
我 运行 nginx 在 docker 中使用 asp.net 网络服务。
如果我这样写我的 conf,我就无法到达例如http:///localhost/order-service/api
这导致“找不到您请求的资源”。
/hubs 端点正在运行。
upstream order-service {
server order-service:5048;
}
# HTTP
server {
listen 80;
location = /order-service/hubs {
proxy_pass http://order-service/hubs;
...
}
location /order-service {
proxy_pass http://order-service;
...
}
}
如果我把它改成:
upstream order-service {
server order-service:5048;
}
# HTTP
server {
listen 80;
location = /order-service/hubs {
proxy_pass http://order-service/hubs;
...
}
location /order-service/api { <--- here is the change!!!
proxy_pass http://order-service;
...
}
}
我可以通过 http:/localhost/order-service
获取 api
但我还有其他网址,例如 order-service/ui 和 order-service/settings。
除了 order-service/hubs?
,我必须用什么来引导所有请求到订购服务
两个表达式:
location /order-service/ {
proxy_pass http://order-service;
}
并且:
location /order-service/ {
proxy_pass http://order-service/;
}
会产生完全不同的结果。
在第一种情况下,请求 /order-service/api
将被代理到上游:
http://order-service/order-service/api
在第二种情况下,同样的请求会被翻译成:
http://order-service/api
查看您的 location = /order-service/hubs
块,您可能需要第二种情况。
详情见this document。
我 运行 nginx 在 docker 中使用 asp.net 网络服务。
如果我这样写我的 conf,我就无法到达例如http:///localhost/order-service/api
这导致“找不到您请求的资源”。
/hubs 端点正在运行。
upstream order-service {
server order-service:5048;
}
# HTTP
server {
listen 80;
location = /order-service/hubs {
proxy_pass http://order-service/hubs;
...
}
location /order-service {
proxy_pass http://order-service;
...
}
}
如果我把它改成:
upstream order-service {
server order-service:5048;
}
# HTTP
server {
listen 80;
location = /order-service/hubs {
proxy_pass http://order-service/hubs;
...
}
location /order-service/api { <--- here is the change!!!
proxy_pass http://order-service;
...
}
}
我可以通过 http:/localhost/order-service
获取 api但我还有其他网址,例如 order-service/ui 和 order-service/settings。 除了 order-service/hubs?
,我必须用什么来引导所有请求到订购服务两个表达式:
location /order-service/ {
proxy_pass http://order-service;
}
并且:
location /order-service/ {
proxy_pass http://order-service/;
}
会产生完全不同的结果。
在第一种情况下,请求 /order-service/api
将被代理到上游:
http://order-service/order-service/api
在第二种情况下,同样的请求会被翻译成:
http://order-service/api
查看您的 location = /order-service/hubs
块,您可能需要第二种情况。
详情见this document。