有没有办法使用不同域的docker部署2个django项目?

c86crjj0  于 2023-08-08  发布在  Go
关注(0)|答案(1)|浏览(91)

我是新的编程世界,所以基本上是平均水平。几天以来,我一直在努力部署两个django项目,它们具有不同的域,包括docker,uwsgi和Nginx,但不知何故,我做不到。问题1:我无法使用端口80运行第二个nginx docker。获取已在使用的端口的错误。问题2:如果我更改端口并运行应用程序docker和nginx。它不工作。这两个域都指向Nginx的端口80。nginx日志问题3:django设置中允许的主机中提到的一个域工作正常。和其他域引发错误请求。反之亦然。
我读了多篇文章,看了多个帖子和视频,仍然没有帮助。最后直接在服务器上使用nginx和uswgi部署项目。我喜欢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 docker文件

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"]

fcy6dtqo

fcy6dtqo1#

我终于想通了。我所做的是创建一个网络,指定子网,如10.5.6.0/24,并为每个容器分配ipv4地址。然后我使用Nginx作为每个项目的反向代理。Docker网络是一条路。我不知道这有多可行,但对我来说很有效。

相关问题