Docker Nginx uwsgi_pass未在位置设置为除此之外的任何位置时工作/
刚刚开始学习Docker、Nginx和uWSGI。我有一个flask应用程序,当我定义这样一个位置时效果非常好: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/
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/
,并且效果良好。非常感谢。