我想转发所有以/api/ (/api/* ??)开头的路径。到端口1000,但实际配置只转发包含"/api/“的路径,之后不转发其他路径(/api/login不转发)
location /api/ {
proxy_pass http://localhost:1000/;
}或者它根本不起作用
location ~ ^/api/(.*)$ {
proxy_pass http://localhost:1000/;
}。服务器被虚构为fallows:
server {
listen 80;
keepalive_timeout 70;
server_name server_name;
location / {
root /var/www/html;
index index.html;
}
location /api/ {
proxy_pass http://localhost:1000/;
}
}我将非常感谢任何人的帮助,谢谢!
发布于 2019-11-19 04:30:40
请注意,使用以下命令:
location /api/ {
proxy_pass http://localhost:1000/;
}如果有请求/api/foo,那么您的API服务器将看到/foo。
另一方面(请注意,在proxy_pass中没有尾部斜杠)您可以使用:
location /api/ {
proxy_pass http://localhost:1000;
}然后,对于相同的请求,您的应用程序接口服务器将按原样接收请求:/api/foo。
因此,请确保您使用正确的方法(斜杠/不斜杠),这取决于您的/api/foo服务器如何处理URL(如果它被配置为处理URL,那么您不应该在proxy_pass中使用尾部斜杠。
https://stackoverflow.com/questions/58911675
复制相似问题