株式会社AQUARIZE

リバースプロキシの設定方法について

お問い合わせはこちら

リバースプロキシの設定方法について

リバースプロキシの設定方法について

2022/10/14

こんにちは!バックエンドエンジニアの山中です。

今週のコラムは

 

リバースプロキシの設定方法(Apacheでの設定手順)

 

をテーマにお話しさせていただきます。

 

〇リバースプロキシって?

一般的にはリバース(reverse)は逆とか反対の意味、プロキシ(proxy)は

代理や代理人の意味があります。
元々は直接サーバーに繋がるところを、その中間に新たに「仲介」してくれるプロキシのイメージです。
その設置を、逆の発想で活用したのがリバースプロキシの技術です。

 

実際は、リバースプロキシサーバを設置する事で負荷の分散などに利用されることが多いですが、
今回は新サーバへ移行作業中、旧サーバに残さないといけないシステムがあったために

この技術を利用しました。

 

〇環境

Apache 2.4

 

〇内容

新サーバにサイトを移行。
特定ディレクトリにアクセスがあった場合のみ旧サーバにアクセスを行う。
旧サーバにアクセスするディレクトリは PHPフレームワーク「Laravel」で構築

 

〇設定方法

apacheインストール後、httpd.confに設定を行う。
※apacheインストール時「mod_ssl」が入っていない場合はインストールを行う。
※今回のサイトはSSL化されているのでVirtualHostも443で対応。

 

www.xxxxxxxxx.com … 新サーバアクセスドメイン
111.222.333.444   … 旧サーバIPアドレス
https://www.xxxxxxxxx.com/pg … このディレクトリにアクセスがあった場合に旧サーバに遷移

 

# vi /etc/httpd/conf/httpd.conf

    # ドメインアクセス時のドキュメントルート設定
    ServerName www.xxxxxxxxx.com
    DocumentRoot "/var/www/html/web/"

    # SSL証明書の設定
    SSLEngine on
    SSLCertificateChainFile /etc/ssl/www.xxxxxxxxx.com.ca.crt
    SSLCertificateFile      /etc/ssl/www.xxxxxxxxx.com.crt
    SSLCertificateKeyFile   /etc/ssl/www.xxxxxxxxx.com.key

    # SSL利用時のプロキシ設定
    SSLProxyEngine on
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off

    # オープンプロキシになるのでOFF
    ProxyRequests Off
    ProxyPreserveHost Off

    # 指定ディレクトリにアクセスがあった場合に、旧サーバを利用
    ProxyPass /pg  https://111.222.333.444/pg
    ProxyPass /api https://111.222.333.444/api
    ProxyPassReverse /pg  https://111.222.333.444/pg
    ProxyPassReverse /api https://111.222.333.444/api

    # 旧サーバでドメイン/パス情報を書き換える
    ProxyPassReverseCookieDomain 111.222.333.444 www.xxxxxxxxx.com
    ProxyPassReverseCookiePath /pg /
    ProxyPassReverseCookiePath /api /

 

 

〇設定時の問題点

今回、一番問題となったのが旧サーバ上で動作しているlalavelセッションでした。


実際に旧サーバへの遷移が必要だった「/pg」ディレクトリへの設定とは別に
セッション通信は別ディレクトリでやり取りが行われていたために、
入力ページ⇒確認ページなどの場合にセッションを維持できず、入力ページに

リダイレクトがかかる状況でした。
今回の場合は「/api」ディレクトリも併せて、旧サーバを利用する事で対応が可能となりました。

 

----------------------------------------------------------------------
株式会社AQUARIZE
〒531-0072
大阪市北区豊崎3-6-8 TOビル404
電話番号 : 06-7777-2927


----------------------------------------------------------------------

当店でご利用いただける電子決済のご案内

下記よりお選びいただけます。