如何解决如何编写 Nginx 配置文件以传递带有 id ([0-9]+) 的 URL 以执行负载平衡
假设我必须访问一个 URL localhost/tag/9
,其中 9 是一个 id。那么我需要在里面写什么
location /tag/? {
}
问题实际上是我在一个网页中有几个标签(链接),每个标签都有一个与之关联的 ID。当我点击一个 ID 为 9 的标签时,它会带我到 localhost/tag/9
并且我得到 404错误。现在我想知道如何将这个 URL 代理传递给我的实际 URL,即 localhost:1111/tag/9
?我的 express 应用在端口 1111、2222 和 3333 上运行。
到目前为止我的 conf 文件
upstream expressweb {
server localhost:1111;
server localhost:2222;
server localhost:3333;
}
server {
listen 80;
location /my_app/ {
proxy_pass http://expressweb/;
}
location /tag/[0-9]+/ {
proxy_pass http://expressweb/tag/$1/;
}
}
知道我该怎么做吗?
编辑:
我尝试过
location /tag/1/ {
proxy_pass http://expressweb/tag/1/;
}
location /tag/2/ {
proxy_pass http://expressweb/tag/2/;
}
location /tag/3/ {
proxy_pass http://expressweb/tag/3/;
}
等等,但仍然无法正常工作
解决方法
nginx 提供文件,而不是网页中的标签 - 这可能意味着多方面的开始。
假设您的 nginx 服务页面引用了位于 http://expressweb/tag/9 的文件(并且您可以从运行 nginx 的主机上使用 curl 获取它),您可以通过代理传递简单地观察正确syntax。从我的头顶
location /tag { proxy_pass http://expressweb; }
或者如果你真的需要正则表达式
location ~ /tag/([0-9]+) { prxy_pass http://expressweb/tag/$1; }
这里是 proxy_pass syntax
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。