我是服务器/网络方面的新手/业余爱好者,所以如果我错过了一些显而易见的东西,请原谅我
我的主要目标是配置 apache2,以便我可以在 1 个住宅 IP 地址下访问多个不同的自托管服务器,而无需为每个服务器使用不同的端口 [例如,访问 Nextcloud、Matrix Element,也许还有以太坊的 DAppNode(如果我能让它工作的话)。我只能将一个端口转发到一个 IP,所以我想,如果我将端口 80 转发到一个 apache 服务器,然后根据域名重定向流量,我就可以访问一个公共 IP 下的每个站点。
因此,我开始使用 Amazon EC2 服务的免费套餐来测试这个想法。我设置了一个 apache (2.4.52) 服务器和一个 Matrix 服务器 [在 docker (20.10.22,build 3a2c30b) 容器下运行](均运行 Ubuntu Server 22.04)。我看到了“ProxyPass”应该做什么,所以认为这就是我的解决方案。这是我的配置,用于将流量重定向到 Matrix 容器
<VirtualHost *:80>
ServerName test1.example.com
ProxyPreserveHost On
ProxyPass / http://172.18.0.3:80
ProxyPassReverse / http://172.18.0.3:80
</VirtualHost>
然而,访问 test1.example.com [不是实际网址] 时会出现“服务不可用”错误,但访问 matrix.example.com [指向矩阵服务器的公共 IP] 时页面加载正常。我可能做错了什么,但我不确定是什么,或者如何做对
另外,我认为如果我将不同的子域名作为服务器名称,我就能让 apache 区分不同的子域名,但我不知道它是如何工作的
更新:经过反复试验,我意识到问题不在于 apache 的反向代理 [它对 index.html 网站运行良好/如预期的那样],而是具体来说,我正在使用的矩阵安装。它有太多活动部件,我对它们不够熟悉,无法使其正常运行。这似乎是一个未来的项目