使用DDNS的反向代理

时间:2017-01-08 20:12:27

标签: apache proxy reverse-proxy

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

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

@model List<Result>

@foreach(var item in Model)
{
    <p>
        <strong>Year: </strong>@item.Year
        <br />
        <strong>Sum of revenue: </strong>@item.SumRevenue
    </p>
}

我从这里开始遵循教程: http://www.linuxjournal.com/content/protect-your-ports-reverse-proxy?page=0,1

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

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

我很感激帮助!

1 个答案:

答案 0 :(得分:2)

我想出来了。我无法直接使用DDNS名称。解决方案是支付一些$$$并注册域名。我使用this example并注册了一个域名,其中包含高级DNS服务和隐私保护,每年15美元。

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

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

现在192.168.1.64:80在DNS中定义并解析为我的华硕DDNS地址。从那里它被转发到for上的我的代理服务器,并通过VirtualHost定义定向到var items = document.getElementsByTagName('li'); for (var i = 0; i < items.length; i++) { if (items[i].title == titleToCheckFor) { showElement(); } } 。通过其他主机的其他CNAME记录定义,您可以在代理服务器中定义其他VirtualHost以访问其他计算机和资源。整齐!

干杯!