fal*_*sky 4 https reverse-proxy docker docker-compose jwilder-nginx-proxy
我在osx上使用docker via boot2docker.
我有2个主机:site1.loc.test.com并site2.loc.test.com指向docker host的ip地址.
两者都应该通过80和443端口可用.
所以我jwilder/nginx-proxy用于反向代理目的.
但事实上,当我docker-compose每次尝试通过80端口打开时,我都会运行所有这些,我会重定向到443 (301 Moved Permanently).
可能是我错过了一些jwilder/nginx-proxy配置?
proxy:
image: jwilder/nginx-proxy
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- certs:/etc/nginx/certs
ports:
- "80:80"
- "443:443"
site1:
image: httpd:2.4
volumes:
- site1:/usr/local/apache2/htdocs
environment:
VIRTUAL_HOST: site1.loc.test.com
expose:
- "80"
site2:
image: httpd:2.4
volumes:
- site2:/usr/local/apache2/htdocs
environment:
VIRTUAL_HOST: site2.loc.test.com
expose:
- "80"
Run Code Online (Sandbox Code Playgroud)
我认为您的配置应该是正确的,但似乎这是jwilder/nginx-proxy. 请参阅文件中的这些行nginx.tmpl:https : //github.com/jwilder/nginx-proxy/blob/master/nginx.tmpl#L89-L94
似乎如果找到证书,您将始终被重定向到 https。
编辑:我在文档中找到了确认
当端口 80 和 443 暴露时,代理的行为如下:
- 如果容器具有可用的证书,则端口 80 将重定向到该容器的 443,以便在可用时始终首选 HTTPS。
您仍然可以使用自定义配置。您也可以尝试nginx.tmpl在新的 Dockefile 中覆盖该文件。
| 归档时间: |
|
| 查看次数: |
4417 次 |
| 最近记录: |