皆様、Apacheは利用されておりますでしょうか。
Apacheでは様々な機能が利用でき情報が多く存在している事から幅広い業界で採用されているかと思います。
そんなApacheの機能の一つにリバースプロキシーというものがあります!
そこで今回はApacheでリバースプロキシー設定を行う方法についてご紹介致します。
前提条件は以下となります。
- レットハット系OS
- Apacheがインストール済み
- バーチャルホスト設定が有効化されている
リバースプロキシーとは?
始めにリバースプロキシーについて軽くご紹介させていただきます。
リバースプロキシーとはサーバーに来たリクエストを条件に応じて別のサーバーに転送する機能となります。
また転送先サーバーからのレスポンスをクライアントに返す役割も持っております。
例えば「example.com」を利用しwebサイトを運用しているとします。
下記は通常ページのアクセスURLとなります。
https://example.com/
「example.com」にて「shop」パスのみ別サーバーを利用したい場合、リバースプロキシー機能を利用し別サーバーへ転送する設定を導入できます。
https://example.com/shop/
必要なモジュール
リバースプロキシー機能を利用場合は「mod_proxy」と「mod_proxy_http」が必要となります。
下記コマンドを実行しモジュール確認を行います。
httpd -M | grep proxy
上記を実行し「proxy_module」と「proxy_http_module」が表示されていれば問題ないかと思います。
表示されていない場合はインストールを行ってください。
設定の追加
次にリバースプロキシー設定の追加を行っていきます。
今回は「example.com」のバーチャルホストファイルに追記する例をご紹介せて頂きます。
リバースプロキシー設定は下記の様に記述する事で設定可能です。
ProxyPass 指定パス 転送先URL
ProxyPassReverse 指定パス 転送先URL
「ProxyPass」では指定したパスに来たリクエストを別のサーバーに転送する設定を行う事が出来ます。
ProxyPassReverse ディレクティブは、転送先サーバーにてリダイレクトが発生した際に、そのリダイレクトの応答ヘッダーを修正するために使用されます。
「example.com」の「shop」を別サーバーに転送する場合は以下の様に記述致します。
ProxyPass /shop https://shop.example.com/
ProxyPassReverse /shop https://shop.example.com/
設定反映
最後に設定反映を行う為、Apacheの再起動を行います。
再起動前に下記のシンタックスチェックコマンドを使用し設定構文に誤りが無いか確認します。
httpd -t
上記実行し下記の様に表示されていれば問題ないです。
エラーが発生している場合は設定項目に誤りがあるかと思いますのでエラー内容を修正して下さい。
Syntax OK
最後に下記コマンドを使用し再起動を行います。
systemctl restart httpd