You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 21:19:57