この質問はすでに別のユーザーによって投稿されていますが、詳細な回答はありませんでした。元の質問へのリンクは次のとおりです- One IP address、Two Websites、on Two Machines
Apache2がインストールされ、静的IPアドレスを持つ2台のマシンがあります。
サーバー1
example.com
static ip = 192.168.0.6
Apache2 running on ports 80 and 443 fine
ufw and router firewall are open on ports 80 and 443 as well
サーバー2
domain name = myhost01.example.com
static ip = 192.168.0.7
Apache2 running on 8080(HTTP) and 8443(HTTPS)
ufw and router firewall are open on ports 8080 and 8443
{http)www.example.comまたは(https)www.example.comにアクセスすると、サーバー1のWebコンテンツが正しく受信されます
Myhost01.example.com:8080またはmyhost01.example.com:8443にアクセスすると、サーバー2のWebコンテンツを正しく受信します
ユーザーがhttp:// myhost01 .example.com /にアクセスすると、http:// myhost01のコンテンツを受信するように、プロキシサーバー2をリバースします。 example.com:8080/、基本的にポート番号を隠します。現在、myhost01(dot)example(dot)comにアクセスしようとすると、「接続できません/ Webページが見つかりません」というエラーが表示されます
Example.comの仮想ホストファイルでは、次を使用しました。
ProxyRequests Off
ProxyPass / http://myhost01. example.com:8080/
ProxyPassReverse / http://myhost01 .example.com:8080/
Apache2でproxyとproxy_httpモジュールの両方が有効になっています
これを機能させる方法についてのアイデアはありますか?
PS -3つ以上のURLを投稿するのに十分な評価ポイントがないため、URLにスペースが追加されました。
**UPDATE-以下の注を参照
Server1-example.com-VHOST FILE
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /myweb/cmweb/Apache/http
#ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://myhost01.example.com:8080/
ProxyPassReverse / http://myhost01.example.com:8080/
<Directory />
Options Indexes FollowSymLinks
AllowOverride None
</Directory>
<Directory /myweb/cmweb/Apache/http/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
LogLevel warn
</VirtualHost>
Myhost01(dot)example(dot)comを無効に置き換える192.168.0.7でプロキシを試行しました
Server2-myhost01(dot)example(dot)com VHOST File
<VirtualHost *:8080>
ServerAdmin [email protected]
ServerName myhost01.example.com
ServerAlias myhost01 myhost01.example.com
DocumentRoot /mwdhost/cmweb/Apache/http
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /mwdhost/cmweb/Apache/http/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
LogLevel warn
</VirtualHost>
ドメイン登録者のレコードにmyhost01が追加されました。NSLOOKUPを実行し、myhost01.example.comの正しい外部IPアドレスを取得できます。
以下はserver1のApache Error.logです-私の問題の手がかりになるかもしれません???
Sun Feb 02 18:24:52 2014] [error] (111)Connection refused: proxy: HTTP: attempt to connect to 54.43.138.12:8080 (myhost01.example.com) failed
[Sun Feb 02 18:24:52 2014] [error] ap_proxy_connect_backend disabling worker for (myhost01.example.com)
[Sun Feb 02 18:24:53 2014] [error] proxy: HTTP: disabled connection for (myhost01.example.com)
[Mon Feb 03 07:33:54 2014] [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
server1(example.com)がmyhost01.example.com
?の正しいDNSレコードを検索して取得できることを確認しました
サーバーには、それぞれパブリックIPと内部IPがありますか?または、1つのIPを持っているというリンクされた質問のようなものですか?
1つのIPを持ち、NATとポート転送を上記のポートで実行する安価なルーターの匂いがしますか?
両方のDNSレコード(myhost1.example.comおよびexample.com)が同じパブリックIPを指している?
はい、それは意図的で正しいことですが、どうなりますか?
myhost01.example.com
の外部IPに、接続に失敗する可能性のあるルーターを指していることが通知されます。想定してみましょう。1つの可能性のあるエラーが見つかりました、それをどのように回避しますか?
DNSからの外部IPは、ローカルネットワークを経由するローカルIPをserver1が見つけるのに役立たないため、それを行う方法が必要ですが、幸運なことにローマには多くの方法が存在します。
/etc/hosts
を編集します。 hostsファイルについてはこちらをご覧ください。 に関する詳細情報192.168.0.7
を指すlocal2.example.com。注:疑問に思うなら、もっと多くのパブリックIPを持ち、小さなサブネット上でそれらを実行することは完全に可能です。これは相互接続としても機能します。そうすることはあまりお勧めできません。
免責事項
完全な構成、Apacheのログとエラーが回答から欠落しているため、この回答は経験に基づいた推測に基づいています。気軽に改善してください。
あなたのアプローチはやり過ぎのようです。
最新のすべてのWebサーバーでは、複数のWebサイトを単一のIPアドレスとポートにバインドできます。これは、それぞれのサイトのホストヘッダー名を構成することによって行われます。
さらに、SNIを使用して、複数のSSLサイトが同じIPアドレスとポート(443など)を指すようにすることができます。古いブラウザはSNIをサポートしていませんが、それはあなたにとって心配ではないかもしれません。
サイトの1つをポート8080にフックしてからプロキシを接続するのは、ポート8080を何らかの方法でクライアントに公開する必要がある場合を除き、長い道のりです。
私は忙しいので、どうしても必要な場合を除き、Apacheの構成に多くの時間を費やしません。それ以外の場合は、Virtualmin( http://www.webmin.com/virtualmin.html )を使用し、そのような構成のダーティな作業の85%を処理します。