ロードバランサーを経由した際の管理画面へのアクセスについて

お世話になっています。

ロードバランサー経由の管理画面へのアクセス方法について質問させてください。

AWS上にELB + EC2二台の冗長構成でbaserCMSサイトの構築をしようとしていますが、
管理画面にアクセスしようとするとリダイレクトループが発生してしまい、アクセスすることができません。

大まかな構成は以下のようになっています

baserCMS 4.2.1

クライアント -> ロードバランサー はTLS(https://hoge.com)で接続
ロードバランサー -> 各APサーバーはローカルIPを用いたhttpで接続

install.overwrite.phpでは以下のように記述

Configure::write('BcEnv.siteUrl', 'https://hoge.com');
Configure::write('BcEnv.sslUrl',  'https://hoge.com');
Configure::write('BcEnv.cmsUrl',  'https://hoge.com');
Configure::write('BcApp.adminSsl', false);

この時、管理画面(https://hoge.com/admin)にアクセスしようとするとリダイレクトループが発生してしまいます。

おそらく
ロードバランサー -> 各APサーバーへのリクエストがBcEnv.cmsUrlと異なるためにリダイレクトが行われてしまっているのだと推測しているのですが、
管理画面へのアクセス時にリダイレクトを行わず、そのままアクセスするためにはどのようにすればよいでしょうか?

Configureの設定値などで対応できると考えているのですが、
該当する設定が見つけられなかったので質問させていただきました。よろしくお願いいたします。

こんにちは

前に同じようなことがあった際には以下の対応で解決した気がします。

  • app/Config/install.php
    • $_SERVER['PHP_SELF']$_SERVER['REQUEST_URI']を書き換え
    • Configure::write('App.fullBaseUrl', 'サイトURL'); を設定
  • lib/Baser/basics.php
    • siteUrl()の先頭にreturn Configure::read('BcEnv.siteUrl');を追加

割と力技ですし、baserのコアの書き換えもやっちゃってますね。

試してはいないですが、もしかしたらBcEnv.hostApp.baseUrlの設定値変更でもいけるかもしれません。

お世話になっております。早速のご回答ありがとうございます。

私どもの環境ではご教示いただいた方法では解決できなかったのですが、
いただいたご回答をヒントにして

・Configure::write(‘App.fullBaseUrl’, ‘https://hoge.com’);を設定
・下記URLにある、一部リダイレクト処理のコメントアウト
http://wiki.basercms.net/レンタルサーバー毎の設定#.E7.AE.A1.E7.90.86.E5.81.B4SSL.E3.82.92.E6.9C.89.E5.8A.B9.E5.8C.96.E3.81.99.E3.82.8B.E3.81.A8.E3.83.AA.E3.83.80.E3.82.A4.E3.83.AC.E3.82.AF.E3.83.88.E3.83.AB.E3.83.BC.E3.83.97.E3.81.8C.E8.B5.B7.E3.81.8D.E3.82.8B

この2点で無事に解決いたしました。
丁寧にお答えいただきありがとうございました。
おかげさまで無事にデプロイができそうです。

1 Like