【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【25卒向け】AI×バーチャル面接の募集を開始いたしました!

【25卒向け】AI×バーチャル面接の募集を開始いたしました!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

Apache2.4でのtomcat連携で内部ELBを使うと「too long」のエラーが出る

インフラエンジニアの伊藤です。
AWSのサーバー構成で、Webサーバでアクセスを受けて、後ろにあるアプリケーションサーバーに対してリクエストをプロキシする
という構成はよくあると思います。

その際に、やっぱり可用性を考慮すると、各サーバは冗長化するほうがいいですよね。
ってことはこんな構成。

WebサーバとしてApacheを使っていて、アプリケーションサーバはtomcatを使う
こんな構成もよくあると思います。

で、Apacheがtomcatに投げるときにハマったので、その解決策を残しておきたいと思います。

ProxyPassの設定でハマった

Apacheのバーチャルホストに、受けたリクエストをtomcatに流す記載をします。

ProxyPass / ajp://internal-elb-xxxxxxxxxxxxxx.ap-northeast-1.elb.amazonaws.com:8009/

ProxyPassを使って、アクセスが来たものをajpの8009ポートにリクエストを投げています。
「internal-elb-~~」と書かれているのは、内部ELBになります。

ただし、この状態でApacheのシンタックスチェックをすると以下のようにエラーが出力されます。

# httpd -t
ProxyPass worker hostname (internal-elb-xxxxxxxxxxxxxx.ap-northeast-1.elb.amazonaws.com) too long

ProxyPassに投げるホスト名が長すぎる…
そんなこと言われたって、内部ELBのホスト名ってこんな感じなるし、IPアドレスも固定じゃないし、どうすりゃいいねん!!
となってしまいました。

Rewriteルールで対応

今回の構成では、ProxyPassでtomcatに向けてそのまま投げてくれたらOKなので、
下記のルールに変更しました。

RewriteEngine on
RewriteRule ^/(.*)$ ajp://internal-elb-xxxxxxxxxxxxxx.ap-northeast-1.elb.amazonaws.com:8009/$1 [P,L]

rewriteルールを使います。
rewriteとして、全てに来たらajpに対して投げる、というようなルールです。

これで無事ApacheのリクエストをTomcat(内部ELB)に投げてくれるようになりました。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
0
読み込み中...
0 票, 平均: 0.00 / 10
4,344
X facebook はてなブックマーク pocket
【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【25卒向け】AI×バーチャル面接の募集を開始いたしました!

【25卒向け】AI×バーチャル面接の募集を開始いたしました!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

この記事をかいた人

About the author