在Docker中使用Unicorn Flask配置Nginx
我在为容器(服务器)容器配置nginx.conf时遇到问题在Docker中使用Unicorn Flask配置Nginx,docker,nginx,flask,gunicorn,Docker,Nginx,Flask,Gunicorn,我在为容器(服务器)容器配置nginx.conf时遇到问题 不使用nginx:我可以通过gunicorn正确访问应用程序 使用nginx:我得到了502个坏网关 我的第一个问题是,如果我有入口nginx,我甚至应该在容器(服务器)上有nginx吗 我的第二个问题是,为什么这个配置不起作用。这是容器(服务器)的docker文件 Dockerfile FROM python:3 as builder WORKDIR '/app' COPY requirements.txt ./ RUN pip
- 不使用nginx:我可以通过gunicorn正确访问应用程序
- 使用nginx:我得到了502个坏网关
Dockerfile
FROM python:3 as builder
WORKDIR '/app'
COPY requirements.txt ./
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8000
ENTRYPOINT [ "gunicorn", "-b", "0.0.0.0:8000", "run:app" ]
FROM nginx
EXPOSE 80
COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf
nginx.conf
upstream flask_server {
server localhost:8000;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://flask_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
命令
# build
docker build -t test/server .
# run
docker run -p 80:80 test/server
我想我的问题是上游本地主机不工作。当我在本地开发时,是否没有办法专门通过docker测试这个容器?或者我必须使用docker compose进行本地测试,并将nginx放在单独的容器中