我已经简单地设置了三个组件,并将其打包到了码头容器中:
PostgreSQL数据库,容器名为workflows-dbDjango + uWSGI web服务器,容器名为workflows-djangoNginx反向代理,容器名为workflows-nginx我用Postgres和Django作为容器,它们可以正常工作。现在,我想加入Nginx。如果我只是在主机上本地安装Nginx (没有Docker)并运行它,我的安装程序就能正常工作。
但是,如果我将Nginx完全相同的配置放入单独的码头容器中,它就无法100%地响应https://请求:
This site can’t be reached
The connection was reset.
ERR_CONNECTION_RESET这是我的配置mysite.conf,插入/etc/nginx/sites-available/mysite.conf和/etc/nginx/sites-enabled/mysite.conf
upstream django {
server workflows-django:8000;
}
server {
listen 80;
server_name workflows.devbg.us;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name workflows.devbg.us;
ssl_certificate /etc/ssl/private/bostongene.crt;
ssl_certificate_key /etc/ssl/private/bostongene.key;
charset utf-8;
client_max_body_size 75M;
location /media {
alias /srv/workflows/media;
}
location /static {
alias /srv/workflows/static;
}
location / {
# We can talk to upstream django either via uwsgi or just http proxy
# uwsgi:
uwsgi_pass django;
include /etc/nginx/uwsgi_params;
# http proxy:
#proxy_set_header Host $host;
#proxy_pass http://django
}
}我在django和postgres容器之后运行nginx容器,参数如下:
docker run --name workflows-nginx --volumes-from workflows-db --volumes-from workflows-django --link workflows-django:workflows-django -p 80:80 -p 443:443 -d workflows-nginx我的主机上的文件/etc/hosts如下所示:
127.0.0.1 localhost
127.0.0.1 workflows-db
127.0.0.1 workflows-django
127.0.0.1 workflows-nginx
127.0.0.1 workflows.devbg.us对于如何排除这些问题,您有什么想法吗?Nginx error.log不包含这些错误。
发布于 2016-04-07 13:25:47
在码头枢纽的官方码头形象似乎被剥夺了nginx适配器。
所以,我只是从debian手工创建了自己的:jessie和voila。看起来uwsgi适配器在nginx-common或nginx-full Debian包中是可用的。
我的Dockerfile:
FROM debian:jessie
RUN apt-get update && apt-get install -y nginx \
ca-certificates \
gettext-base
COPY yoursite.conf /etc/nginx/sites-available/yoursite.conf
COPY yoursite.conf /etc/nginx/sites-enabled/yoursite.conf
COPY yoursite.crt /etc/ssl/private/
COPY yoursite.key /etc/ssl/private/
# forward request and error logs to docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log
EXPOSE 80 443
CMD ["/usr/sbin/nginx", "-g", "daemon off;"]https://stackoverflow.com/questions/36476509
复制相似问题