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

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

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

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

Q&A

解決済

3回答

4963閲覧

Apache、バーチャルホストをソースIPを元に設定する方法

obake

総合スコア21

Apache

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

0グッド

0クリップ

投稿2014/09/13 10:23

ApacheをソースIPごとに異なるバーチャルホストで設定することは可能でしょうか?
例:同じインターフェース・ホスト名で、異なるバーチャルホスト・異なるコンテンツ

私のIPアドレスでサイトを正しくアクセス出来るようにし、他のユーザはホールドページが表示されるようにしたいです。
一般的な方法ですと、mod_rewriteを使ってビジターを同じdocrootの別のページにダイレクトすることができますが、私はまったく別のdocrootを使ってホールドページを表示したいです。

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

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

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

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

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

guest

回答3

0

ベストアンサー

バーチャルホストを2つ作っておいて、ソースアドレスでもってrewrite proxyしてはどうでしょうか。

<VirtualHost *:80>
ServerName mypage.example.com
DocumentRoot /usr/local/apache2/htdocs_mypage
ErrorLog logs/error_log
TransferLog logs/error_log
</VirtualHost>

<VirtualHost *:80>
ServerName others.example.com
DocumentRoot /usr/local/apache2/others_mypage
ErrorLog logs/other_error_log
TransferLog logs/other_error_log
</VirtualHost>

<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REMOTE_ADDR} __my_address__ RewriteRule ^(.*)$ http://mypage.example.com$1 [P]
RewriteCond %{REMOTE_ADDR} !__my_address__ RewriteCond ^(.*)$ http://others.example.com$1 [P]
</IfModule>

投稿2014/10/07 07:16

rogueref

総合スコア727

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

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

0

ApacheをソースIPごとに異なるバーチャルホストで設定することは可能でしょうか?
例:同じインターフェース・ホスト名で、異なるバーチャルホスト・異なるコンテンツ

ローカルにApacheを構築した場合だと、以下の通りでどうでしょうか。
同じホスト名というわけにはいかないかもですが、、、
(Hostsで設定すれば行けますが、、、)

別の端末にApacheを構築した場合でも、1つのインターフェイスに2つのIPアドレスを
持たせることもできますので、自分用のIPアドレスと他ユーザ用のIPアドレスを割り振って
以下の設定を変更すれば問題無いと思いますよ。

lang

1# 自分用 2<VirtualHost 127.0.0.1:80> 3 ServerName hoge.jp 4 DocumentRoot /var/www/html1 5 ErrorLog logs/local_error_log 6 TransferLog logs/local_access_log 7</VirtualHost> 8 9# 他ユーザ用 10<VirtualHost 192.168.1.10:80> 11 ServerName hoge.jp 12 DocumentRoot /var/www/html2 13 ErrorLog logs/global_error_log 14 TransferLog logs/global_access_log 15</VirtualHost>

投稿2014/10/03 08:42

harmar229

総合スコア55

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

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

0

Apacheのレベルで、mod_rewriteなしで出来るかどうかわからないのです。

2つのApacheバーチャルホストを設定し、iptablesを使い透明にビジターを正しいバーチャルホストに移動させたらどうでしょうか?

例:

lang

1iptables -A PREROUTING -t nat -i eth0 -p tcp -s your.ip.address -d your.server --dport 80 -j DNAT --to-destination your.actual.site:someport 2iptables -A PREROUTING -t nat -i eth0 -p tcp ! -s your.ip.address -d your.server --dport 80 -j DNAT --to-destination your.holding.site:someport

投稿2014/09/14 02:30

kantafks

総合スコア49

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問