Closed. This question is off-topic。它当前不接受答案。












想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。

7年前关闭。



Improve this question





我有一个全天候24/7运行的NAS /服务器,并在其上运行许多不同的服务。我现在有一个指向它的域名,想知道是否有可能创建指向不同服务端口的子域。例如:


http://subsonic.mydomain.com-> XXX.XXX.XXX.XXX:4040
http://minecraft.mydomain.com-> XXX.XXX.XXX.XXX:25565
http://files.mydomain.com-> XXX.XXX.XXX.XXX:4082


我只有一个D-LINK路由器,当前端口将所有这些端口转发到IP为192.168.0.104的NAS /服务器。

编辑:服务器正在运行Ubuntu 12.04。

我需要运行哪些服务或代理来识别子域并相应地路由流量?还是我可以使用apache虚拟主机来处理此问题,因为这些子域将进入apache正在侦听的端口80?还是虚拟主机不能这样工作?

任何信息,想法或技巧都是有帮助的/有用的。

最佳答案

有两种方法可以做到这一点。您可以使用httpd.conf的VirtualHost部分,也可以在.htaccess中进行。 (假设子域解析为与您的网络服务器相同的IP)

httpd.conf中:

<VirtualHost *:80>
    ServerName subsonic.mydomain.com
    redirect / http://mydomain.com:4040/
</VirtualHost>


.htaccess中:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^subsonic\.mydomain\.com$ [NC]
RewriteRule ^(.*)$ http://mydomain.com:4040/$1 [R=301]


说明文件:
-Guide to creating name-based virtual hosts
-Core,包括VirtualHostNameVirtualHost
-Redirect
-mod_rewrite guide

10-08 04:47