【问题标题】:Reverse Proxy using DDNS使用 DDNS 的反向代理
【发布时间】:2017-05-23 02:01:43
【问题描述】:

随着我的家庭网络的增长,我发现我希望从外部世界获得更多访问权限,这似乎需要我超越路由器中的端口转发。我有几个系统(大部分是虚拟化的)使用端口 80 和 443(大部分),我无法将这些端口转发到多个 IP 地址。这是我计划使用反向代理的地方。

我正在运行 Apache2 的 Ubuntu 12.04 LTS 系统上对此进行测试。我在 /etc/apache2/sites-available 中创建了一个名为 reverseprox 的文件,如下所示:

root@server:/etc/apache2# cat sites-available/reverseprox 
<VirtualHost *:80>
        LoadModule proxy_module modules/mod_proxy.so
        LoadModule proxy_http_module modules/mod_proxy_http.so
        ServerName ws.myDomain.asuscomm.com
        ServerAlias ws
        ProxyRequests Off 
        ProxyPass / http://192.168.1.64:80/
        ProxyPassReverse / http://192.168.1.64:80/
</VirtualHost> 

我从这里按照教程进行操作: http://www.linuxjournal.com/content/protect-your-ports-reverse-proxy?page=0,1

我的网络服务器位于本地网络的 192.168.1.64 上。我有一个华硕路由​​器,并且正在使用华硕 DDNS 服务设置为myDomain.asuscomm.com。我还设置了 Apache 所需的所有符号链接,以便在我重新启动 apache2 服务时找到必要的模块并且没有错误(除了关于 000-default 文件中的环回地址的投诉)。我已将路由器中的端口 80 转发到运行 apache 的系统(在 192.168.1.62 上),并且可以看到空白的“It Works!”网页,所以很明显 myDomain.asuscomm.com:80 正在访问 192.168.1.62 但是当我输入 ws.myDomain.asuscomm.com 时,我的 VirtualHost 似乎没有做任何事情。

我错过了什么吗?是不是我使用的是华硕 DDNS 服务,而 myDomain.asuscomm.com 不是有效的域名?如果需要,我可以毫无问题地注册域名以使其正常工作。我计划将此扩展到我的其他系统,例如 nas.myDomain.asuscomm.com、vSphere.myDomain.asuscomm.com 等...

感谢您的帮助!

【问题讨论】:

    标签: apache proxy reverse-proxy


    【解决方案1】:

    我想通了。我永远无法直接使用 DDNS 名称。解决方案是支付一些美元并注册一个域名。我使用NameCheap.com 注册了一个具有高级 DNS 服务和隐私保护的域名,费用为每年 15 美元。

    然后,我创建了所需 URL 的 CNAME 记录,并将目标设置为我的 DDNS URL。使用新的 CNAME 记录更新 DNS 服务器后(大约需要 15 分钟),宾果游戏!反向代理有效!

    例如,我注册了myDomain.com。在高级 DNS 选项下的 NameCheap 帐户设置中(应该与 GoDaddy 等其他域注册服务的概念相同),我定义了一条 CNAME 记录,其中 Host 设置为 ws.myDomain.comTarget 设置为 myDomain.asuscomm.com

    现在ws.myDomain.com 在 DNS 中定义并解析为我的华硕 DDNS 地址。从那里它被转发到我在192.168.1.62 上的代理服务器,并通过VirtualHost 定义定向到192.168.1.64:80。并且通过其他主机的额外 CNAME 记录定义,您可以在代理服务器中定义额外的虚拟主机来访问其他机器和资源。整洁!

    干杯!

    【讨论】: