使用 DDNS 的反向代理

Reverse Proxy using DDNS

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

我正在 Ubuntu 12.04 LTS 系统 运行 Apache2 上对此进行测试。我在 /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 上。我有一个 Asus 路由器并且正在使用 Asus 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 似乎没有做任何事情

我错过了什么吗?是不是我使用的是华硕动态域名服务,myDomain.asuscomm.com 不是有效的域名?如果需要,我可以注册一个域名来让它工作。我计划将其扩展到我的其他系统,例如 nas.myDomain.asuscomm.com、vSphere.myDomain.asuscomm.com 等...

感谢您的帮助!

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

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

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

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

干杯!