ApacheとTomcatの構成に問題があります。これはシナリオです。
Apache Webサーバーを実行しており、正常に動作しています。これにアクセスするには、次のように入力します。
http://localhost
また、このホストでは、Tomcatを実行して正常に動作しています。ファイルが「prueba」ディレクトリ内にあるミニWebアプリを作成しました。入力にアクセスできます。
http://localhost:8080/prueba
(Apacheは80ポートで、Tomcatは8080で実行されていることを知っています)
私がやりたいのは、ユーザーが「pruebas」(Tomcatで実行)にアクセスできるApacheを通して、つまり:
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を使用しています。
あなたは置く必要があります
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
apache仮想ホスト上
次に、Tomcatでajpリスナーのコメントを解除する必要があります
<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
次に、server.xmlでホストとコンテキストパスを構成する必要があります
REFF: http://www.ntu.edu.sg/home/ehchua/programming/howto/ApachePlusTomcat_HowTo.html
これがあなたを助けることを願っています。
ProxyPassReverse
は、Apache httpdがURLを書き換えるURLを定義します。これにより、プロキシされた(隠された)URLにリダイレクトされます。このため、ProxyPassReverse
行を次のように変更する必要があります。
ProxyPassReverse / http://localhost/prueba/
参照: http://httpd.Apache.org/docs/2.2/mod/mod_proxy_ajp.html#usage
これを試して:
ProxyPass /prueba/ http://localhost:8009/prueba/
ProxyPassReverse /prueba/ http://localhost:8009/prueba/
そして、ブラウザから次のURLにアクセスします。http:// localhost/prueba /
注:「/ prueba /」の追加は必須です
SELinuxが原因でサービスを利用できない可能性があります。SELinuxを無効にしてみてください:setenforce 0
以下を追加してみてください:
ProxyPreserveHost On
ドキュメントから :
「有効にすると、このオプションは、ProxyPass行で指定されたホスト名の代わりに、着信要求からHost:行をプロキシされたホストに渡します。
通常、このオプションはオフにする必要があります。元のHostヘッダーがバックエンドサーバーによって評価される必要があるプロキシ化された大量の名前ベースの仮想ホスティングなどの特別な構成で主に役立ちます。
あなたは述べました:私はタイピングにアクセスできます:
http:// localhost :8080/ prueba
しかし、以下は機能しません:
ProxyPass/prueba/ http:// localhost :8009/ prueba /
8080!= 8009
ポート番号が同じであることを確認してください