随着我的家庭网络的增长,我发现我希望从外部世界获得更多的访问,这似乎要求我在路由器中的端口转发之外的增长。我有几个系统(大多数是虚拟化的),它们使用端口80和443 (大多数),并且我不能将这些端口转发到多个IP地址。这就是我计划使用反向代理的地方。
我在运行Apache2的Ubuntu12.04LTS系统上进行了测试。我在/etc/apache2/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上。我有一个华硕路由器,并使用华硕DDNS服务设置为myDomain.asuscomm.com。我还按照要求设置了所有sym-link,以便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等。
非常感谢你的帮助!
发布于 2017-01-19 05:06:10
我想通了。我从来不能直接使用DDNS名称。解决方案是支付一些$$$并注册一个域名。我使用NameCheap.com并注册了一个具有高级域名服务和隐私保护的域名,年费为15美元。
然后,我创建了所需URL的CNAME记录,并将目标设置为我的DDNS URL。一旦使用新的CNAME记录更新了DNS服务器(花费了大约15分钟),答对了!反向代理起作用!
例如,我注册了myDomain.com。在我的NameCheap帐户设置中,在高级DNS选项下(应该与GoDaddy等其他域注册服务的概念相同),我定义了一个CNAME记录,将Host设置为ws.myDomain.com,并将Target设置为myDomain.asuscomm.com。
现在,在DNS中定义了ws.myDomain.com,并将其解析为我的Asus DDNS地址。从那里,它被转发到我在192.168.1.62上的代理服务器,并通过VirtualHost定义被定向到192.168.1.64:80。通过为其他主机定义额外的CNAME记录,您可以在代理服务器中定义额外的VirtualHosts以访问其他机器和资源。干净利落!
干杯!
https://stackoverflow.com/questions/41537352
复制相似问题