我是新的编程世界,所以基本上是平均水平。几天以来,我一直在努力部署两个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"]
型
1条答案
按热度按时间fcy6dtqo1#
我终于想通了。我所做的是创建一个网络,指定子网,如10.5.6.0/24,并为每个容器分配ipv4地址。然后我使用Nginx作为每个项目的反向代理。Docker网络是一条路。我不知道这有多可行,但对我来说很有效。