17

Apache と Tomcat の構成に問題があります。これがシナリオです。

私は Apache Web サーバーを実行しており、正常に動作しています。次のように入力するだけで、これにアクセスできます。

http://localhost

また、このホストでは、Tomcat が実行され、正常に動作しています。ファイルが「prueba」ディレクトリ内にあるミニ Web アプリを作成しました。次のように入力してアクセスできます。

http://localhost:8080/prueba

(Apache は 80 ポートで実行され、Tomcat は 8080 ポートで実行されていることがわかっています)

私がやりたいことは、ユーザーがApacheを介して「プルーバス」(Tomcatで実行)にアクセスできるようにすることです。

http://localhost/prueba

私はこれをたくさん読みましたが、これを行うには 2 つの方法があると思います。プロキシ モジュール (proxy と proxy_ajp、a2enmod を使用) を有効にすることにしました。また、このファイルを編集する必要があることも読みました。サイト利用可能/デフォルト、これはコンテンツです:

NameVirtualHost *:80
<VirtualHost *:80>
     ServerName 127.0.0.1
     DocumentRoot /var/www

     ProxyRequests Off
     ProxyPreserveHost On

     ProxyPass /static/ !
     ProxyPass / ajp://localhost:8009/
     ProxyPassReverse / ajp://localhost:8009/

.
.
.
     Alias /static/ "/apache/www/"

</VirtualHost>

しかし、これは適切に機能していません:(

私は、この 2 行に加えて、次のような多くの変更を試みたと言わざるを得ません。

     ProxyPass /prueba ajp://localhost:8009/prueba
     ProxyPassReverse /prueba ajp://localhost:8009/prueba

また

     ProxyPass / ajp://localhost:8009/prueba
     ProxyPassReverse / ajp://localhost:8009/prueba

(ファイルを編集するたびに、Apacheを再起動します)

しかし、[http://localhost/prueba/] にアクセスすると、次のようになります。

誰も理由を知っていますか?よろしくお願いします。

Pd: 私は apache 2.2.17 と tomcat6 を使用しています。

4

7 に答える 7

2

ProxyPassReverseApache httpd が URL を書き換える必要がある URL を定義します。これは、プロキシされた (隠し) URL にリダイレクトされます。ProxyPassReverseこのため、行を次のように変更する必要があります。

ProxyPassReverse / http://localhost/prueba/

参照: http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html#usage

于 2012-12-01T14:27:28.847 に答える
0

追加してみてください:

ProxyPreserveHost On

ドキュメントから

「有効にすると、このオプションは、ProxyPass 行で指定されたホスト名の代わりに、着信要求からプロキシされたホストに Host: 行を渡します。

通常、このオプションはオフにする必要があります。これは、元の Host ヘッダーをバックエンド サーバーで評価する必要がある、プロキシされたマス ネーム ベースの仮想ホスティングのような特別な構成で最も役立ちます。」

于 2015-05-12T01:29:34.137 に答える
0

SELinux が原因でサービスを利用できない可能性があります。SE Linux を無効にしてみてください: setenforce 0

于 2013-10-28T06:43:06.780 に答える