Linux Apacheサーバーで2つのアプリケーションを実行しようとしています。
そして、それらをリモートコンピューターから接続するために、これらのhttpd
構成ファイルを使用します。
OpenProjectの場合:
Include /etc/openproject/addons/Apache2/includes/server/*.conf
<VirtualHost *:80>
ServerName 198.162.12.13
DocumentRoot /opt/openproject/public
ProxyRequests off
Include /etc/openproject/addons/Apache2/includes/vhost/*.conf
# Can't use Location block since it would overshadow all the other proxypass directives on CentOS
ProxyPass /openproject/ http://127.0.0.1:6000/openproject/ retry=0
ProxyPassReverse /openproject/ http://127.0.0.1:6000/openproject/
</VirtualHost>
PgAdminの場合:
<VirtualHost *:80>
ServerName 198.162.214.23
WSGIScriptAlias /pgadmin4 /usr/lib/python2.7/site-packages/pgadmin4-web/pgAdmin4.wsgi
WSGIDaemonProcess pgadmin processes=1 threads=25
<Directory /usr/lib/python2.7/site-packages/pgadmin4-web/>
WSGIProcessGroup pgadmin
WSGIApplicationGroup %{GLOBAL}
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</Directory>
</VirtualHost>
そして今、魔法(私にとって)が始まり、私の質問がどこにあるのか:
両方のファイルでサーバー名を見てください。pgProjectには実際のIPアドレスが含まれていますが、OpenProjectにはランダムなIPアドレスがあります。
この設定では、pgAdminは機能しますが、OpenProjectは機能しません。
一般に、pgAdminの設定がなければ、OpenProjectはどのIPアドレスでも機能します。これは私には奇妙です。そのため、最初の質問は、なぜですか???
つまり、要約すると:
両方のファイルで実際のIPアドレスを設定した場合、OpenProjectは機能しますが、pgAdminは機能しません。
両方のファイルでランダムなIPアドレスを設定した場合、OpenProjectは機能しますが、pgAdminは機能しません。
OpenProjectに実際のIPを設定し、pgAdminにランダムに設定した場合、OpenProjectは機能しますが、pgAdminは機能しません。
OpenProjectにランダムIP、pgAdminに実際のIPを設定した場合、OpenProjectは機能しませんが、pgAdminは機能します。
なぜそれがめちゃくちゃになっているのですか?両方のアプリケーションが期待どおりに機能するようにこれらのファイルを構成するにはどうすればよいですか?
DNSを使用して2つの名前を作成します(例:openproject.example
およびpgadmin.example
)サーバーの実際のアドレス(明らかに198.162.12.13)を指します。これらの名前をそれぞれのServerName
設定で構成し、 http://openproject.example および http://pgadmin.example を使用してそれらにアクセスします。
1つのIPアドレスで複数の個別のWebサイト/アプリケーションを実行するには、おおよそ3つのオプションがあります。
$(hostname)/app1
と_/app2
_にインストールします。両方のアプリケーションをルートにインストールする必要がある場合_/
_オプションは
異なるポート番号で複数の仮想Webサーバーを実行すると、http://$(hostname):81/
は1つのアプリケーションを表示し、http://$(hostname):82/
は別のアプリケーションを表示できます
複数の仮想Webサーバーを異なるホスト名で実行し、 名前ベースの仮想ホスティング を実行します。次に、_http://app1.example.com/
_は1つのアプリケーションを表示でき、_http://app2.example.com/
_は別のアプリケーションを表示できます
あなたの設定はその最後のオプションを使用する試みのように見えますが、両方のVirtualHost定義が同じServerName
で設定されるため、Apacheはそれらを区別できません。