如何编写Nginx Config文件传递URL with id ([0-9]+) 来执行负载均衡

How to write Nginx Config file to pass URL with id ([0-9]+) to perform Load Balancing

假设我必须去一个 URL localhost/tag/9 其中 9 是一个 id.So 我需要在里面写什么

location /tag/? {

}

实际上我在一个网页中有几个标签(链接),每个标签都有一个与 them.When 关联的 ID 我点击一个 ID 为 9 的标签,它带我到 localhost/tag/9我得到 404 error.Now 我想知道如何 proxy_pass 这个 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//;
    }
}

知道我该怎么做吗?

编辑:

我试过

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/;
    }

等等及其工作fine.But我仍在努力用正则表达式编写它。

解决了

这样写正则表达式部分就完成了 me.One 这里要注意的是任何正则表达式都必须在 nginx 配置 file.And $ 中用 () 包装起来end 表示正则表达式值将在 URL

的末尾
 location ~ /([1-9][0-9]*)$ {
        proxy_pass http://expressweb/tag//;
    }

nginx 服务于文件,而不是网页中的标签 - 这意味着可以从多个方面入手。

如果您的 nginx 服务页面引用了位于 http://expressweb/tag/9 的文件(并且您可以从运行 nginx 的主机上使用 curl 获取它),您可以简单地代理传递观察正确syntax。从我的头顶

location /tag { proxy_pass http://expressweb; }

或者如果你真的需要正则表达式

location ~ /tag/([0-9]+) { prxy_pass http://expressweb/tag/; }

这里是proxy_passsyntax