【发布时间】:2019-11-18 09:41:25
【问题描述】:
我想将所有以 /api/ (/api/* ??) 开头的路径转发到端口 1000,但实际配置要么只转发包含“/api/”的路径,而在 (/api/登录不转发)
location /api/ {
proxy_pass http://localhost:1000/;
}
或者它根本不起作用
location ~ ^/api/(.*)$ {
proxy_pass http://localhost:1000/;
}
。服务器被定义为休闲:
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/;
}
}
如果有任何帮助,我将不胜感激,谢谢!
【问题讨论】:
-
如果
/api/login未被此位置块处理,则必须有另一个优先的位置或重写语句。我们需要从您的访问和错误日志中查看更多配置和相关条目。 -
感谢您的回复!这是否意味着我必须在 nging 中映射所有 api 路径,并且没有方法可以自动重定向所有以 /api/ 开头的路径?
-
没有。您的问题中的位置将匹配任何以
/api/开头的 URI除非在您的配置中的其他位置有另一个位置或重写语句覆盖它。 -
好了,我现在添加了整个配置,可能是第一个位置“/”影响了错误?
-
该配置导致错误。您是否查看过错误日志或使用
nginx -T对其进行了测试?
标签: regex api nginx proxy location