如何解决nginx如何proxy_pass所有请求期望一个目录?
我想做的是所有传入请求都应由我的Angular应用程序处理。但是一个目录是用于REST-api的,必须排除在外。
我当前的nginx配置锁定如下:
location /rest {
try_files $uri $uri/ /rest/index.php$is_args$args;
}
location ~ / {
proxy_pass http://127.0.0.1:4000;
}
上面的配置始终以http://127.0.0.1:4000
响应。 REST API本身似乎可以正常工作,因为当我禁用location ~ /
时,REST将被调用并返回内容。所以我想实现的是:
https://SERVER -> http://127.0.0.1:4000
https://SERVER/xyz -> http://127.0.0.1:4000
...
https://SERVER/rest -> http://127.0.0.1/rest
代理如何转发所有请求,但如果给出特定目录则不能转发?
解决方法
我首先要尝试的是将第一个规则修改为:
location ^~ /rest {...
这应该确保如果第一个匹配,则不会加密sercond块:
如果最长的匹配前缀位置具有^〜修饰符,则 Nginx将立即结束其搜索并将该位置选择为 服务请求。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。