随着我的家庭网络的增长,我发现我想从外部世界获得更多的访问,这似乎需要我在我的路由器端口转发以外的增长。我有几个系统(大部分是虚拟化的)使用端口80和443(大部分),我不能转发这些端口到多个IP地址。这是我计划使用反向代理的地方。
我在运行Apache 2的Ubuntu 12.04 LTS系统上测试此功能。我在/etc/apache 2/sites中创建了一个名为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
我的Web服务器位于192.168.1.64本地网络的www.example.com上。我有一个Asus路由器,使用的Asus DDNS服务设置为myDomain.asuscomm.com
。我还设置了Apache所需的所有符号链接,以便在重新启动apache 2服务时找到必要的模块,并且不会出现错误(除了抱怨000-default文件中的环回地址)我已经将路由器中的端口80转发到运行Apache的系统(在www.example.com上192.168.1.62),可以看到空白的“It Works!”网页,因此很明显myDomain.asuscomm.com:80正在访问192.168.1.62,但当我输入ws.myDomain.asuscomm.com
时,我的虚拟主机似乎没有任何操作。
我错过了什么吗?是因为我正在使用华硕DDNS服务,而myDomain.asuscomm.com不是有效的域名吗?如果需要,我可以注册一个域名来使用它。我计划将其扩展到我的其他系统,如nas.myDomain.asuscomm.com、vSphere.myDomain.asuscomm.com等...
感谢你的帮助!
1条答案
按热度按时间2sbarzqh1#
我明白了这一点。我从来没有能够直接使用DDNS名称。解决办法是支付一些$$$和注册一个域名。我使用NameCheap.com和注册一个域名与高级DNS服务和隐私保护为15美元/年。
然后,我创建了我想要的URL的CNAME记录,并设置目标为我的DDNS URL。一旦DNS服务器更新了新的CNAME记录(大约花了15分钟),宾果!反向代理工作!
例如,我注册了
myDomain.com
。在高级DNS选项下的NameCheap帐户设置中(应该与GoDaddy等其他域注册服务的概念相同),我定义了一个CNAME记录,其中Host
设置为ws.myDomain.com
,Target
设置为myDomain.asuscomm.com
。现在
ws.myDomain.com
在DNS中得到定义,并解析为我的华硕DDNS地址。从那里它被转发到我在192.168.1.62
上的代理服务器,并通过VirtualHost定义定向到192.168.1.64:80
。并与其他主机的额外CNAME记录定义,您可以在代理服务器中定义额外的VirtualHost来访问其他机器和资源。干杯!