我有一个用于开发的 Traefik-2 docker-compose-setup(以及一个类似的用于 prod 的),其中包含多个包含多个 dc-images 的 docker-compose 项目,每个项目都可以像这样在本地访问:https://docker-app1。 docker-doamin1.loc,包括。 HTTPS/SSL 证书;通过 /etc/hosts 的“dns”。
当 traefik-container 正在运行而 apache 未运行时(否则端口冲突),这就像一个魅力
我还有一些项目可以直接在本地 apache(在 ubuntu/debian 上)上运行,并在 /etc/apache2/sites-available/ 中进行配置,如下所示:
<VirtualHost *:80>
ServerName apache-app1.apache-domain1.loc
DocumentRoot /path-to/apache-app1.apache-domain1.loc/public
<Directory /path-to/apache-app1.apache-domain1.loc/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
Fallbackresource /index.php
</Directory>
DirectoryIndex index.php index.html
</VirtualHost>
但前提是 apache 正在运行而 docker-traefik 容器未运行,同样是因为 80/443 冲突
我需要(或希望)两个版本同时运行。
我的想法是在不同的端口(20080/20443)上运行 docker-traefik 容器,并将 ProxyPass 从 apache 重定向到该 docker-proxy-container (反之亦然)
我尝试过(例如)这个:
<VirtualHost *:443>
ProxyPreserveHost On
ProxyRequests Off
ServerName docker-app1.docker-doamin1.loc
ServerAlias www.https://docker-app1.docker-doamin1.loc
ProxyPass / https://docker-app1.docker-doamin1.loc:20443/
ProxyPassReverse / https://docker-app1.docker-doamin1.loc:20443/
</VirtualHost>
有
127.0.1.1 docker-app1.docker-doamin1.loc
在我的/etc/hosts 中。
但这不起作用。在每种情况下,最好像这样重定向通配符:
*.docker-doamin1.loc
。
目前所有这些都是针对本地开发环境的,因此安全性并不那么重要。
如果有人在这里有一些提示,那就太好了。
我们使用代理*:
<VirtualHost *:443>
ServerName ...
SSLProxyEngine On
ProxyPreserveHost On
ProxyAddHeaders On
ProxyPass / http://localhost:8089/ connectiontimeout=28800 timeout=28800 Keepalive=On nocanon
ProxyPassReverse / http://localhost:8089/
</VirtualHost>
您的服务器别名有错误:
ServerAlias www.https://docker-app1.docker-doamin1.loc
我想你的意思是:
ServerAlias www.docker-app1.docker-doamin1.loc