我有一个安装了Nginx的Amazon EC2实例(使用Amazon Linux)。我设置了python Flask应用程序,并将其放在Docker容器上。 Docker文件在这里:
FROM apierleoni/flask-uwsgi:latest
EXPOSE 3001
WORKDIR /usr/src/app
RUN pip install --upgrade pip
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 3001
CMD [ "uwsgi", "--socket", "0.0.0.0:3001", \
"--protocol", "http", \
"--wsgi", "wsgi:app" ]
docker-compose.yml看起来像这样:
version: '3'
services:
integration-app:
container_name: integration-app-api
build:
context: .
dockerfile: Dockerfile
volumes:
- '.:/usr/src/app'
ports:
- '3001:3001'
运行docker-compose up
命令后,我可以通过HTTP在端口3001上访问Flask应用程序路由
Nginx反向代理不起作用。产生502错误。 Nginx配置看起来像这样
upstream api_server2 {
server 127.0.0.1:3001;
}
server {
...
location /crm-project-api {
include uwsgi_params;
uwsgi_pass api_server2;
}
...
}
答案 0 :(得分:0)
upstream api_server2 {
server 127.0.0.1:3001;
}
instead of this add:-
upstream api_server2{
server integration-app:3001; // container name
}
CMD [ "uwsgi", "--socket", "0.0.0.0:3001", \
"--protocol", "http", \
"--wsgi", "wsgi:app" ]
代替http协议添加uwsgi