80のすべてのApacheリクエストを8080のtomcatにリダイレクトする必要があります(1つのパスを除く)。Apache ProxyPassエラー
したがって、http://example.com/anything - > tomcat:8080を受信した場合。
ただし、URLが次の場合:http://example.com/site - > apacheが処理され、リダイレクトは必要ありません。
現在、という名前のフォルダが/var/www/html/
にあります。
これは私の現在の設定ファイルです:私はこれを考える(このファイルは唯一、以下が含まれており、conf.dフォルダ内にある)
<LocationMatch "/*">
Allow from all
ProxyPass /site !
ProxyPass http://127.0.0.1:8080
ProxyPassReverse http://127.0.0.1:8080
</LocationMatch>
site.conf
Apacheで達成するのは簡単なことですが、私が見つけたすべてのものを試しましたが、まだエラーが出ています:
ProxyPass|ProxyPassMatch can not have a path when defined in a location.
ルートWebサイトはtomcatで実行されていますが、もう1つはApache(この質問でサイトと呼ばれるもの)で実行されています。
誰かが助けることができれば、私は感謝します。
ありがとうございます!
アップデート1 - 2017年9月6日
私はLocationMatch
を削除し、.conf
ファイルに直接ProxyPass
を置けば、それは仕事を得る:私は希望、
ProxyPass /site !
ProxyPassReverse /site !
ProxyPass /http://127.0.0.1:8080
ProxyPassReverse /http://127.0.0.1:8080
しかし、知りたいのはなぜですか?この指示文をLocationMatch
タグの外側に置くと、どのような影響がありますか?そして、最も重要なのは、LocationMatch
を使って同じ結果を達成できない理由は何ですか?
よろしいですか。ありがとう!私はあなたのソリューションを 'Location'を使って試してみます。しかし、 'Location'を使わないことで、違いは何ですか?これらのプロキシ値を直接ファイルに設定することは、 'VirtualHost'自身または' Directory'の設定と同じですか?そのアプローチに問題はありますか? – Luiz
'Location'ブロックを使って' ProxyPass'を設定するだけの場合、設定ファイルの最上位レベルで 'Location'と' ProxyPass'を使用するのとの違いがあるとは思えません。私は 'ProxyPass'だけでなく' Location'セクションでもっとやっているのかどうかは、関連する設定要素をまとめておくほうが好きかもしれないと思います。 – larsks