Docker 容器的 Apache2 反向代理配置

Docker 容器的 Apache2 反向代理配置

首先我要说一下,我是 Apache2 的新手。

我正在尝试将 Apache2 配置为 2 个 Docker 容器(Gitlab 和电子邮件服务)的反向代理。我的配置如下:

<VirtualHost *:80>
ProxyPreserveHost On
# Servers to proxy the connection, or;
# List of application servers:
# Usage:
# ProxyPass / http://[IP Addr.]:[port]/
# ProxyPassReverse / http://[IP Addr.]:[port]/
# Example: 

ProxyPass / http://172.17.0.2/
ProxyPassReverse / http://172.17.0.2/

ServerAlias www.gitlab.ch
ServerName www.gitlab.ch
</VirtualHost>

<VirtualHost *:443>
ServerAdmin webmaster@localhost
ProxyPreserveHost On
# Servers to proxy the connection, or;
# List of application servers:
# Usage:
# ProxyPass / http://[IP Addr.]:[port]/
# ProxyPassReverse / http://[IP Addr.]:[port]/
# Example: 
SSLProxyVerify none
SSLProxyEngine on
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ProxyPass / https://172.17.0.2/
ProxyPassReverse / https://172.17.0.2/
ServerAlias www.gitlab.ch
ServerName www.gitlab.ch

我已经编辑了 /etc/hosts 文件。

配置文件设置完全相同(名称和 IP 地址除外),但由于某种原因,无论我点击哪个链接(www.gitlab.ch 或 wwww.email.ch),我总是到达电子邮件登录面板,所以我想 apache 优先考虑这一点。

端口配置如下(主机:容器)

GitLab:

8800:80
4433:443

电子邮件:

2500:25 
8000:80 
4430:443 
1100:110 
1430:143 
4650:465 
5870:587 
9930:993 
9950:995

任何帮助深表感谢。

答案1

编辑:找到了修复方法,只需编辑 /etc/hosts 文件

原来的:

127.0.0.1    www.gitlab.ch
127.0.0.1    www.email.ch

固定的:

172.17.0.2    www.gitlab.ch
172.17.0.3    www.email.ch

问题是我使用了主机本地 IP 而不是 Docker Conatiners IP。

相关内容