新しい Ubuntu 22.04 仮想マシンで Apache をリバース プロキシとして設定しようとしています。Ubuntu 18.04 には既存の Apache リバース プロキシがあり、すべてが意図したとおりに動作しています。この新しいリバース プロキシは古いプロキシを置き換えるはずですが、仮想ホストが正しく動作していないようです。
私は次のことを行いました:
apt-get update
apt-get upgrade
apt-get install apache2
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_balancer
a2enmod lbmethod_byrequests
サイト対応のデフォルトページを無効にしました。
a2dissite 000-default.conf
次に、新しい仮想ホストを作成して有効にしました。
vi 001-trupage.azmedien.ch.conf
a2ensite 001-trupage.azmedien.ch.conf
次のようになります:
<VirtualHost trupage.azmedien.ch:80>
ServerName trupage.azmedien.ch
ProxyPreserveHost On
ProxyPass / http://10.200.0.130/
ProxyPassReverse / http://10.200.0.130/
</VirtualHost>
その後、Apache を再起動してリロードしました。
systemctl restart apache2
systemctl reload apache2
この非常に基本的な構成が機能するかどうかをテストするために、Windows PC にホスト ファイル エントリを作成しました。このエントリは Apache サーバーを指しています。
その後、trupage.azmedien.ch にアクセスしようとすると、正しいサーバー (仮想ホストの ProxyPass で定義されている) にリダイレクトされるのではなく、Apache のデフォルト Web サイトに移動します。
何らかの理由で仮想ホストが認識されないようです。「trupage.azmedien.ch:80」を「*:80」に置き換えてブラウザで開くと、ProxyPass が機能します。しかし、明らかに、複数の仮想ホストが存在するため、これは私が望んでいることではありません。
<VirtualHost *:80>
ServerName trupage.azmedien.ch
ProxyPreserveHost On
ProxyPass / http://10.200.0.130/
ProxyPassReverse / http://10.200.0.130/
</VirtualHost>
以下は からの出力ですapache2ctl -S
。213.146.11.131 は古いリバース プロキシの IP ですが、それがどこから来ているのか、なぜここに表示されているのかはわかりません。
root@azprox10:~# apache2ctl -S
AH00558: apache2: Could not reliably determine the server's fully qualified doma in name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress th is message
VirtualHost configuration:
213.146.11.131:80 is a NameVirtualHost
default server localhost (/etc/apache2/sites-enabled/001-trupage.azmedi
en.ch.conf:1)
port 80 namevhost localhost (/etc/apache2/sites-enabled/001-trupage.azm
edien.ch.conf:1)
port 80 namevhost opvsg.chmedia.ch (/etc/apache2/sites-enabled/002-opvs
g.chmedia.ch.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex rewrite-map: using_defaults
Mutex proxy: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
答え1
行に DNS 名は必要ありません<VirtualHost>
。<VirtualHost *:80>
問題ありません。複数指定できます。関連するのはディレクティブですServerName
。
この行のエントリは<VirtualHost>
、Apache がリッスンするインターフェースのみを定義します。ここにホスト名を入力すると、Apache はそれを IP アドレスに解決して正しいインターフェースを見つけようとします。