ソフラボの技術ブログ

仕事で使ったプログラミング、サーバー周りで役に立つこと、Webサービス開発に必要な技術情報、モバイル情報を書いてます。わかりやすく見やすくをモットーにしています。

Apache2.4のリバースプロキシ設定は最後の「/」が不要!

新規でサーバーを構築する機会があったのでApache2.4でリバースプロキシを設定しました。

Apache2.2の設定をそのまま使ってみるものの、動作せず5時間ほどハマり、結果的に「/」の有無で解決しました。

他の人がこれにハマらないように記事にしておきます…。

動作環境

Linux CnetOS6
Apache 2.4
WildFly 11.0

設定の比較

Apache2.2の設定

<Location "/ContextRoot">
    ProxyPass http://localhost:8080/ContextRoot/
    ProxyPassReverse http://xxxxx.com/ContextRoot
</Location>

Apache2.4の設定

<Location "/ContextRoot">
    ProxyPass http://localhost:8080/ContextRoot
    ProxyPassReverse http://xxxxx.com/ContextRoot
</Location>

相違点

Apache2.4のProxyPassの最後に「/」を付けてません。
これがあると、ポート8080を使う通常の処理は問題ないのですが、cssやjsなどの静的コンテンツが読み込まれません。

まとめ

リバースプロキシの設定は、バージョンアップしても基本的に使えますが、少しの変更が必要になることがあるので注意が必要です。

Apache2.4を触ってみましたが、最初に設定する項目が減ってて楽でした。
例えば、バーチャルホストだとNameVirtualHostの宣言は必要ありませんでした。
ディレクトリ構造がかなり変わって違和感ありありです。
yumでインストールした場合、/opt/rh/httpd24/root/がルートになります。


サーバ構築の実際がわかる Apache[実践]運用/管理 (Software Design plus)

サーバ構築の実際がわかる Apache[実践]運用/管理 (Software Design plus)