求助:使用Docker部署两个不同域名的Django项目遇阻
问题描述
作为编程新手,尝试使用Docker、uWSGI和Nginx部署两个不同域名的Django项目,但始终未能成功,遇到以下问题:
- 无法启动第二个使用80端口的Nginx容器,提示端口已占用。
- 修改端口后启动应用容器和Nginx,两个域名仍指向80端口的Nginx(根据Nginx日志显示)。
- 仅在Django配置的ALLOWED_HOSTS中存在的域名可正常访问,另一个域名返回错误请求(Bad Request),反之亦然。
已查阅大量文章、帖子和视频,但均未解决问题,目前只能直接在服务器上用Nginx和uWSGI部署项目。希望得到相关建议和帮助,以继续使用Docker完成部署。
附配置文件
default.conf
server { listen ${LISTEN_PORT}; server_name example.com; location / { uwsgi_pass ${APP_HOST}:${APP_PORT}; include /etc/nginx/uwsgi_params; client_max_body_size 10M; } location /static { alias /vol/static; } }
第二个应用的Docker配置与此类似,仅应用和端口参数不同。
Nginx Dockerfile
FROM nginxinc/nginx-unprivileged:1-alpine LABEL maintainer="example.com" COPY ./default.conf.tpl /etc/nginx/default.conf.tpl COPY ./uwsgi_params /etc/nginx/uwsgi_params COPY ./run.sh /run.sh ENV APP_PORT=9000 ENV APP_HOST=app ENV LISTEN_PORT=80 USER root RUN mkdir -p /vol/static && \ chmod 755 /vol/static && \ touch /etc/nginx/conf.d/default.conf && \ chown nginx:nginx /etc/nginx/conf.d/default.conf && \ chmod +x /run.sh VOLUME /vol/static USER nginx CMD ["/run.sh"]
内容的提问来源于stack exchange,提问作者Ankit
相关产品推荐
相关产品推荐

