Regex 如何转发nginx中以特定位置开始的所有路径?
我想将所有以/api/(/api/*??)开头的路径转发到端口1000,但实际配置要么只转发包含“/api/”的路径,要么转发后面的路径(/api/login不转发) 或者根本不起作用Regex 如何转发nginx中以特定位置开始的所有路径?,regex,api,nginx,proxy,location,Regex,Api,Nginx,Proxy,Location,我想将所有以/api/(/api/*??)开头的路径转发到端口1000,但实际配置要么只转发包含“/api/”的路径,要么转发后面的路径(/api/login不转发) 或者根本不起作用 location ~ ^/api/(.*)$ { proxy_pass http://localhost:1000/; } 。服务器被配置为休耕: server { listen 80;
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/;
}
}
如果有任何帮助,我将不胜感激,谢谢 注意:
location /api/ {
proxy_pass http://localhost:1000/;
}
如果有请求/api/foo
,那么您的api服务器将看到/foo
另一方面,如果(注意,proxy\u pass
中没有尾随斜杠),则使用:
然后,对于相同的请求,API服务器将“按原样”接收请求:/API/foo
因此,请确保使用正确的方法(斜杠/无斜杠),这取决于API服务器处理URL的方式(如果配置为处理
/api/foo
URL,则不应在代理过程中使用尾随斜杠
如果此位置块未处理/api/login
,则必须有另一个优先的位置或重写语句。我们需要更多地了解您的配置和相关信息。)访问日志和错误日志中的条目。感谢您的回复!这是否意味着我必须映射nging和te中的所有api路径?没有方法自动重定向以/api/?no开头的所有路径。问题中的位置将匹配以/api/
开头的任何URI,除非存在其他位置或重写状态您的配置中的其他位置覆盖了它。好的,我现在添加了整个配置,可能错误受第一个位置“/”的影响。该配置导致错误。您是否查看了错误日志或使用nginx-T
对其进行了测试?
location /api/ {
proxy_pass http://localhost:1000/;
}
location /api/ {
proxy_pass http://localhost:1000;
}