如何解决Nginx 如何通过位置路由到反向代理
目前我使用 nginx 服务器并使用 nodejs 服务器作为反向代理。 我想按位置使 nginx 服务器 proxy_pass 不同的服务器。
那么,假设我的域是 subdomain.domain.com
。
加载 subdomain.domain.com/
时,这应该提供静态文件。
加载 subdomain.domain.com/example1/req1/req2
时,这应该路由到 127.0.0.1:3000/req1/req2
。
加载 subdomain.domain.com/example2/req1/req2
时,这应该路由到 127.0.0.1:8080/req1/req2
。
但我的配置将 subdomain.domain.com/example1/req1/req2
路由到 127.0.0.1:3000/example1/req1/req2
导致错误。 (nodejs 返回无法获取 /example1)
我应该如何正确编写这个 nginx conf 文件?
解决方法
尝试在位置块中使用重写指令。
类似于:
location /example1/ {
rewrite ^/example1/(.*)$ /$1 break;
proxy_pass http://xxxxxx;
}
您可以在http://nginx.org/en/docs/http/ngx_http_rewrite_module.html
查看与重写模块相关的文档 ,您需要将以下代码片段添加到您的 nginx.conf 中。
server subdomain.domain.com;
location / {
rewrite ^/example1/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:3000;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。