NGINX定位问题

NGINX定位问题,nginx,Nginx,我有django和flask应用程序通过不同端口在同一台机器上运行: Django在服务器8088上运行 Flask在服务器上运行:666 在NGINX.conf中,我有以下代码: location / { proxy_pass http://127.0.0.1:8088; } location ^/server2 { proxy_pass http://127.0.0.1:666; }

我有django和flask应用程序通过不同端口在同一台机器上运行:

Django在服务器8088上运行 Flask在服务器上运行:666

在NGINX.conf中,我有以下代码:

 location / {
            proxy_pass          http://127.0.0.1:8088;

        }

 location ^/server2 {
            proxy_pass http://127.0.0.1:666;
        }
Django已经成功运行了一年多,其中as flask是一个新的添加。每当我试图访问其中一个Flask url时,我要么得到一个“此url在此服务器上不存在”错误,要么偶尔得到一个500错误(当我一直在摆弄时)

如果我为特定的烧瓶url写入位置信息,如下所示:

location /server2/splash {
                proxy_pass http://127.0.0.1:666/splash;
            }
它可以工作,但我显然不想为flask应用程序中的每个URL编写单独的位置信息

我已经在stackoverflow上浏览了许多现有的Nginx位置帖子,但我一直无法让它正常工作。有什么想法吗

谢谢

编辑

这是我试图实现的一个示例,但不是每个URL的单独映射,而是覆盖所有URL的单个映射:

        location /server2{
            proxy_pass http://127.0.0.1:666/splash;
        }

        location /server2/split {
            proxy_pass http://127.0.0.1:666/split;
        }

        location /server2/export {
            proxy_pass http://127.0.0.1:666/export;
        }

        location /server2/import {
            proxy_pass http://127.0.0.1:666/import;
        }

为什么要使用
^
符号?只需移除它,我认为它会起作用:

location /server2 {
        proxy_pass http://127.0.0.1:666;
    }

请注意,当您使用
location/server2
时,
server2
仍在传递给您的flask应用程序

在这种情况下,Nginx正在执行以下操作:

server.com/server2 => http://127.0.0.1:666/server2
server.com/server2/splash => http://127.0.0.1:666/server2/splash
在这种情况下,
位置
没有进行重写。始终检查
/var/log/nginx
(或日志所在的位置),以检查浏览器执行的请求以及处理站点规则后nginx查找的内容

您可能需要设置一个
上游
指令:

upstream flask_server {
    server 127.0.0.1:666;
}

server {
    ...

    location /server2 {
        proxy_pass http://flask_server;
    }
}

我试过两种方法(包括其他方法),但都失败了。你解决了问题吗?您是否两个应用程序都只针对本地主机?您使用的是“nginx服务器块”吗?一个月前我做了一个类似的教程!也许会有帮助