【问题标题】:How to forward a subdomain to a new port on the same IP address using Apache? [closed]如何使用 Apache 将子域转发到同一 IP 地址上的新端口? [关闭]
【发布时间】:2012-09-24 18:38:22
【问题描述】:

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

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

编辑:服务器运行的是 Ubuntu 12.04。

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

任何信息、想法或提示都会有帮助/有用。

【问题讨论】:

  • 我认为这是一个有效的问题,并已将其标记为需要主持人干预。它应该重新打开。

标签: apache dns web subdomain portforwarding


【解决方案1】:

有两种方法可以做到这一点。您可以使用 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

【讨论】:

  • 它实际上是在重定向吗(因为 R=301 这似乎是 Move Permantently http 状态代码)?还是显示网站的内容?就我而言,我想实现第二种情况。
猜你喜欢
  • 1970-01-01
  • 2013-01-14
  • 1970-01-01
  • 1970-01-01
  • 2020-01-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 2023-03-13
相关资源
最近更新 更多