我家里的设置如下:
互联网 -> pfSense 路由器 -> 多台 Windows 7 机器 Ubuntu NAS w/Webmin
我有动态 DNS 设置,因此我使用 pfSense WAN 盒更新 www.domainname.com
例如,在两台 Windows 7 机器上安装 Java VNC 网络服务器,我可以进行如下设置:
www.domain.com:5800 是 PC1 www.domain.com:5901 是 PC2
我想知道的是,是否可以在 ubuntu 机器上安装 apache,将 80 端口流量转发给它,并将其设置为例如
www.domain.com/PC1 重定向到默认端口上的 PC1 java vnc 服务器 www.domain.com/PC2 重定向到 PC2 vnc 等等。
如果可能的话,将不胜感激一些指点。
答案1
尝试 apache 重写引擎。类似于:
<VirtualHost ubuntu:80>
ServerName domainname.com
RewriteCond %{REQUEST_URI} ^/PC1
RewriteRule ^/(.*)$ http://pc1:5800/$1 [R=permanent,L]
RewriteCond %{REQUEST_URI} ^/PC2
RewriteRule ^/(.*)$ http://pc1:5901/$1 [R=permanent,L]
</VirtualHost>
更新。我刚刚意识到您可能还想让这两台电脑无法通过互联网连接,即位于路由器后面且没有外部 IP。在这种情况下,您必须修改上述内容,以便它将请求重定向到不同端口上的同一台 ubuntu 机器,然后通过代理传递到本地 Windows 服务器:
<VirtualHost ubuntu:80>
ServerName domainname.com
RewriteCond %{REQUEST_URI} ^/PC1
RewriteRule ^/(.*)$ http://ubuntu:5800/$1 [R=permanent,L]
RewriteCond %{REQUEST_URI} ^/PC2
RewriteRule ^/(.*)$ http://ubuntu:5901/$1 [R=permanent,L]
</VirtualHost>
<VirtualHost ubuntu:5800>
ServerName domainname.com
ProxyPass / http://pc1:5800/
ProxyPassReverse / http://pc1:5800/
</VirtualHost>
<VirtualHost ubuntu:5901>
ServerName domainname.com
ProxyPass / http://pc2:5901/
ProxyPassReverse / http://pc2:5901/
</VirtualHost>
呼...希望这有帮助...:)
答案2
尝试这个:
<VirtualHost ubuntu:80>
ServerName domainname.com
ProxyPass /PC1 http://pc1:5901/
ProxyPassReverse /PC1 http://pc1:5901/
ProxyPass /PC2 http://pc2:5901/
ProxyPassReverse /PC2 http://pc2:5901/
</VirtualHost>
比弄乱要容易得多RewriteRule