我有一台全天候运行的NAS /服务器,并在其上运行许多不同的服务。我现在有一个指向它的域名,并且想知道是否有可能创建指向不同服务的不同端口的子域。例如:
我有一个D-LINK路由器,当前端口将所有这些端口转发到我的NAS /服务器,其IP为192.168.0.104。
编辑:服务器正在运行Ubuntu 12.04。
我需要运行哪些服务或代理才能识别子域并相应地路由流量?或者我可以使用apache虚拟主机来处理这个,因为这些子域将进入端口80,apache正在监听?或虚拟主机不能像这样工作?
任何信息,想法或提示都会有所帮助/有用。
答案 0 :(得分:22)
有两种方法可以做到这一点。您可以使用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,包括VirtualHost和NameVirtualHost
- Redirect
- mod_rewrite guide