在 apache 服务器后面运行 Traefik docker-proxy,重定向/代理一些请求(反之亦然)

问题描述 投票:0回答:1

我有一个用于开发的 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

目前所有这些都是针对本地开发环境的,因此安全性并不那么重要。

如果有人在这里有一些提示,那就太好了。

linux docker apache proxy traefik
1个回答
0
投票

我们使用代理*:

<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
© www.soinside.com 2019 - 2024. All rights reserved.