web-dev-qa-db-ja.com

Apacheを使用して同じIPアドレスの新しいポートにサブドメインを転送するにはどうすればよいですか?

私はNAS /サーバーを24時間年中無休で自宅で実行しており、さまざまなサービスを実行しています。私は今それを指すドメイン名を持っています、そして異なるサービスのために異なるポートを指すサブドメインを作成することが可能であるかどうか疑問に思いました。例えば:

現在、これらすべてのポートをIPが192.168.0.104のNAS /サーバーにポート転送する単一のD-LINKルーターがあります。

編集:サーバーはUbuntu12.04を実行しています。

サブドメインを認識し、それに応じてトラフィックをルーティングできる、実行する必要のあるサービスまたはプロキシは何ですか?または、Apache仮想ホストを使用してこれを処理できますか?これらのサブドメインはApacheがリッスンしているポート80で受信されるためですか?または、仮想ホストはこのように機能しませんか?

どんな情報、アイデア、またはヒントも役に立ちます/役に立ちます。

16
Brett McLain

これを行うには2つの方法があります。 httpd.confのVirtualHostセクションを使用することも、.htaccessで使用することもできます。 (サブドメインがWebサーバーと同じ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]

ドキュメンテーション:
- 名前ベースの仮想ホストを作成するためのガイド
CoreVirtualHost および NameVirtualHost を含む
- リダイレクト
mod_rewriteガイド

22
Peter Oram