【发布时间】:2018-07-28 06:50:22
【问题描述】:
我有一个 docker-compose 文件,现在运行两个容器:
version: '3'
services:
nginx-certbot-container:
build: nginx-certbot
restart: always
links:
- ghost-container:ghost-container
ports:
- 80:80
- 443:443
tty: true
ghost-container:
image: ghost
restart: always
ports:
- 2368:2368
我有四个网站,l.com、t1.l.com、t2.l.com、t3.l.com,所有网站都使用letsencrypt完成的ssl证书,并且在URL上工作我可以看到绿色锁等...
对于 t2.l.com,我希望它是来自 ghost 的博客,但使用以下 nginx 配置,
upstream ghost-container {
server ghost-container:2368;
}
server {
server_name t2.l.com;
location / {
proxy_pass https://ghost-container;
proxy_ssl_certificate /etc/letsencrypt/live/l.com/fullchain.pem;
proxy_ssl_certificate_key /etc/letsencrypt/live/l.com/privkey.pem;
proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
proxy_ssl_ciphers "ECDHE-ECD ... BC3-SHA:!DSS";
proxy_ssl_session_reuse on;
}
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/l.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/l.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
}
server {
listen 80;
listen [::]:80;
server_name t2.l.com;
include /etc/nginx/snippets/letsencrypt.conf;
location / {
return 301 https://t2.l.com$request_uri;
#proxy_pass http://ghost-container;
}
}
如果我注释掉返回 301,只保留 proxy_pass,我会被重定向到 ghost blog服务器返回 502 错误网关。
我有什么遗漏吗?从其他人的代码看来,只有代理证书就足够了......
编辑
好吧,我只是做了一些我确定不会起作用的事情,并将 ssl 部分中的代理传递设置为 http: 而不是 https:,并且一切正常,所以如果有人能解释背后的机制或逻辑为什么会这样,我会很感兴趣,这在我看来没有意义。
【问题讨论】: