随着我的家庭网络的增长,我发现我希望从外部世界获得更多访问权限,这似乎需要我在路由器中超越端口转发。我有几个系统(大多数是虚拟化的)使用端口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等......
我很感激帮助!
答案 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以访问其他计算机和资源。整齐!
干杯!