子路由上的 Nginx 不同服务

Nginx different service on subroute

我在 8080 和 8081 端口上有 2 个 Django 应用 运行。我使用 gunicorn 和 NGINX 来为他们服务。

目前我只有 8080 端口上的应用程序添加到 NGINX,sites-enabled 中的配置(部分)如下所示:

location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
}

现在我需要在端口 8081 上添加第二个应用程序,以便它在 /second_app 路由上提供服务。所以我是这样看的:

/           -> 127.0.0.1:8080
/second_app -> 127.0.0.1:8081

然而,当我将第二个位置设置为 /second_app 时它不起作用,我认为这两条路线冲突并且只要第一个更宽它 "consumes" 请求。

另外我认为值得一提的是“8080 app”没有任何以/second_app开头的路由,所以它不能与“8081 app”冲突。

将您的新服务器更具体的正则表达式放在文件的第一位并使用正确的 block syntax

 location ^~ /second_app {
            proxy_pass http://127.0.0.1:8081;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP $remote_addr;
 }