apache2: アプリケーションとリポジトリの VirtualHost 設定

apache2: アプリケーションとリポジトリの VirtualHost 設定

CentOs 2.6 で apache2 2.2 を使用しています。

wildfly アプリケーションとソース コード リポジトリを使用できるように apache2 を構成する必要があります。アプリケーションでは、アドレス domain.com を使用し、アプリ localhost:8080/app1 にリダイレクトされます。リンク domain.com/repos/app1 を使用して、ソース コード リポジトリ (localhost/repos/app1) を使用できるようにします。両方のリンクはポート 80 を使用します。

次の構成では、アプリケーションを使用できますが、リポジトリにアクセスできません。これは、アプリケーションへのリクエストが wildfly app1 にリダイレクトされ、当然「そのようなページはありません」というページがそこに表示されるためです。

<VirtualHost *:80>
   ServerName domain.com
   ServerAlias www.domain.com domain.com

   ProxyRequests Off
   ProxyPreserveHost On

   ProxyPass / http://localhost:8080/app1/
   ProxyPassReverse /  http://localhost:8080/app1/

   RewriteEngine   On
   RewriteCond     %{THE_REQUEST}  /app1/
   RewriteRule     ^/app1/(.*)$ /$1 [PT]

</VirtualHost>

この問題を解決するにはどうすればよいですか?

答え1

正しく理解していれば、ローカル フォルダーとアプリ サーバーで実行されているアプリの両方に 2 つの URL からアクセスしたいということですね。ProxyPass / を使用すると、domain.com/repos にアクセスしようとすると、wildfly アプリにプロキシされます。domain.com/repos -> (wildfly)http://localhost:8080/app1/repos

アプリにアクセスするにはdomain.com/app1を使用し、リポジトリにアクセスするにはdomain.com/reposを使用する必要があります。そうすればURLは必要ありません。

ProxyPass /app1 http://localhost:8080/app1/
ProxyPassReverse /app1  http://localhost:8080/app1/

関連情報