Docker Nginx uwsgi_pass未在位置设置为除此之外的任何位置时工作/

Docker Nginx uwsgi_pass未在位置设置为除此之外的任何位置时工作/,docker,nginx,flask,uwsgi,Docker,Nginx,Flask,Uwsgi,刚刚开始学习Docker、Nginx和uWSGI。我有一个flask应用程序,当我定义这样一个位置时效果非常好: location / { include uwsgi_params; uwsgi_pass flask:8080; } 。。。但我希望有多个应用程序(一些运行Flask、一些Django、一些节点等)在不同的位置运行,因此我可以执行以下操作: -烧瓶 -Django -节点 我希望这样做: location /app1/

刚刚开始学习Docker、Nginx和uWSGI。我有一个flask应用程序,当我定义这样一个位置时效果非常好:

    location / {
        include uwsgi_params;
        uwsgi_pass flask:8080;
    }
。。。但我希望有多个应用程序(一些运行Flask、一些Django、一些节点等)在不同的位置运行,因此我可以执行以下操作:

  • -烧瓶
  • -Django
  • -节点
我希望这样做:

    location /app1/ {
        include uwsgi_params;
        uwsgi_pass flask:8080;
    }
。。。但我从Flask&Nginx得到了404:

nginx    | xxx.xxx.xxx.x - - [18/Dec/2019:23:18:09 +0000] "GET /app3/ HTTP/2.0" 404 232 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Safari/605.1.15" "-"
flask    | [pid: 6|app: 0|req: 1/1] xxx.xxx.xxx.x () {38 vars in 602 bytes} [Wed Dec 18 23:18:09 2019] GET /app3/ => generated 232 bytes in 2 msecs (HTTP/2.0 404) 2 headers in 72 bytes (1 switches on core 0)
以下是我使用
/
定位时获得的成功/
200

flask    | [pid: 10|app: 0|req: 2/3] xxx.xxx.xxx.x () {38 vars in 592 bytes} [Wed Dec 18 23:30:33 2019] GET / => generated 65 bytes in 0 msecs (HTTP/2.0 200) 2 headers in 79 bytes (1 switches on core 1)
nginx    | xxx.xxx.xxx.x - - [18/Dec/2019:23:30:33 +0000] "GET / HTTP/2.0" 200 65 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Safari/605.1.15" "-"

我缺少什么?

您正在将
/appN/
路径发送到上游服务。在代理之前在nginx中将其删除,或者让每个服务都知道它需要响应源于
/appN/
的请求。谢谢,@wmorrell。我在烧瓶路径中添加了一个
/
(因此将其从
/app1
更改为
/app1/
,并且效果良好。非常感谢。