質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

解決済

2回答

10467閲覧

複数サーバーへサブドメインによる仕分け方法

namuyan

総合スコア76

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

0グッド

3クリップ

投稿2016/12/29 01:22

Apacheを使用してWebサーバーを運営しています。
今回から物理的にサーバーを複数導入する必要があり、

aaa.example.com → 192.168.1.10 のWebサーバーのルートへ
bbb.example.com → 192.168.1.12 のWebサーバーのルートへ

のようにアクセスされるようにしたいと思います。

そこでユーザーはルータを介して192.168.1.10にアクセスした後に
Apacheの機能により内部的に192.168.1.12へ繋げたいのですがやり方を知りません。
どのように設定をすればよいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

httpd-vhosts.confの設定だけでいけるのではないでしょうか?
mod_proxyを有効にする必要があると思いますが。

《httpd-vhosts.conf》

<VirtualHost *:80> ServerName aaa.example.com ProxyPreserveHost On ProxyPass / http://192.168.1.10/ timeout=3600 ErrorLog "logs/aaa-err.log" CustomLog "logs/aaa.log" xxxxxx </VirtualHost> <VirtualHost *:80> ServerName bbb.example.com ProxyPreserveHost On ProxyPass / http://192.168.1.12/ timeout=3600 ErrorLog "logs/bbb-err.log" CustomLog "logs/bbb.log" xxxxxx </VirtualHost>

投稿2016/12/29 04:53

_kato

総合スコア149

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

namuyan

2016/12/29 05:21

example.com/bbb/によりプロキシにより別サーバへの繋がりを確認したのですがbbb.example.comのようなサブドメイン設定だけがうまくいきません。 試しに <VirtualHost *:80> ServerName test.example.com DocumentRoot /opt/lampp/htdocs/test </VirtualHost> 以上を直接httpd.confに書き込みtestにindex.htmlを置いてアクセスを試してみましたが繋がりませんでした。これはサブドメインの機能が無効であるということでしょうか?しかしデフォルトで有効であるようで、有効化の方法を見つけられません。
_kato

2016/12/29 05:36

VirtualHost の設定は有効になってますでしょうか? 有効にするには以下の設定が必要です。 <httpd.conf> ServerName www.example.com:80 ↓ #ServerName www.example.com:80 となっているところをコメントアウト。 <httpd.conf>または<httpd-vhost.conf> #NameVirtualHost *:80 ↓ NameVirtualHost *:80 ※コメントを外して有効化 ⇒httpd.confでInclude conf/extra/httpd-vhosts.confのように書かれている場合は、 <httpd-vhost.conf>に記述されている場合が多いです。 (参考)http://qiita.com/zaburo/items/b9c3c8c541ffd16797fc
guest

0

要件をみたすかどうかわからないのですが、
apache の名前ベースのバーチャルホストでFQDNごとにバーチャルホストを作成し、そのなかからリバースプロキシで転送してはどうでしょうか?この方法であれば、グローバルIPが1個で済みます。DNS 上は aaa.example.com と bbb.example.com を同じIPで登録し、ブラウザのアドレスバーのホスト名(実体はHTTPのHostヘッダー)をキーにして、分岐させることが可能です。

投稿2016/12/29 02:09

mit0223

総合スコア3401

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

namuyan

2016/12/29 04:15 編集

つまり httpd-vhosts.conf <VirtualHost *:80> DocumentRoot /opt/lampp/htdocs ServerName aaa.namuyan.dip.jp </VirtualHost> <VirtualHost *:80> DocumentRoot /opt/lampp/htdocs/bbb ServerName bbb.example.com </VirtualHost> httpd-proxy.conf ProxyPass /aaa http://192.168.1.12:1234 ProxyPassReverse /aaa http://192.168.1.12:1234 http://bbb.example.comでアクセスした人は仮想的な aaa に飛ばし、さらにリバースプロキシで192.168.1.12:1234に飛ばす。 このような感じでよいでしょうか?ただしこれでは動きませんでした。 設定で間違いや勘違いがあれば指摘して下さると嬉しいです。
mit0223

2016/12/29 08:14

_kato さんの回答のように、ProxyPass を VirtualHost の中に設定する必要があります。ところで、前提としているOSとApache のバージョンは何でしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問