ロードバランサー使用時のアクセス先について
ロードバランサー使用時のアクセス先について、お伺いします。
ロードバランサーを使用し、下記の通信経路でのアクセスを想定しております。
『クライアント端末』⇒(HTTPS:443)⇒『ロードバランサー』⇒(HTTP:80)へポート変換⇒『ZabbixWebサーバ』⇒(10051)⇒『Zabbixマネージャサーバ』
この経路の場合、クライアント端末にて使用するURLは『https://xxx.xxx/zabbix』になる認識です。
この場合、Zabbix側にもHTTPS設定で通信を受けるように設定が必要となりますでしょうか。
気になった点として、ロードバランサーにて『443』から『80』へのポート変換処理をしており、Zabbixから見ると『HTTP:80』の通信を受けているため、Zabbix側にはHTTPSの設定が不要なのかなと考えました。
ロードバランサーにてポート変換をせずに『HTTP』通信をすると正常にZabbix画面が表示されるため、
『HTTPS』の設定が必要なのかなと考えておりましたが、設定がうまくいかずに考え方が違うのかなとも思ったため、ご質問させて頂きました。
TNK - 投稿数: 4769
ロードバランサーとして何を使用されているのかわかりませんが、
単純にロードバランサーに対してHTTPSで接続してきたものをHTTP
のサーバーに転送しただけですと、Webサーバーから返却された
HTML内の各リンクがhttpのままとなってしまうので、受け取ったブ
ラウザがそのリンクを参照したらHTTPでアクセスしようとしてしま
うでしょう。
使用されているロードバランサーにもよるとは思いますが、HTTPS
を使用してロードバランサー経由でアクセスしてきたら、返却する
HTML内のURLを「http://...」から「https://...」に書き換えて返
却するようにすればよいのではないでしょうか?
使用されているWebサーバーがApache HTTP Serverであるならば、
mod_rewriteを使用して実現できると思います。
ヒント: HTTP:X-Forwarded-Proto
zabbixat - 投稿数: 32
TNK様
いつもご回答頂き、ありがとうございます。
ロードバランサーについては、Cloud上のものを使用しております。
ロードバランサーを介してのHTTPSからHTTPへポート変換する場合は、下記の通り、ドキュメントルートを変更する必要があったようでした。
ちなみにHTTP通信の場合は、ロードバランサーを介した場合でもデフォルト設定でも通信できました。
/etc/httpd/conf/httpd.conf
DocumentRoot "/usr/share/zabbix"
TNK - 投稿数: 4769
その設定が必要になるのは、
https://xxx.xxx/zabbix/
を
http://xxx.xxx/
に変換するなど「/zabbix/」というURLのパスを削除する場合です。
今後質問されるときには、何をどうしたいのかどのような環境であ
るのか、どのようなエラーやログが記録されているのかの情報と合
わせてを具体的に質問するようにしてください。
zabbixat - 投稿数: 32
TNK様
ご回答ありがとうございます。
一点追加でお伺いさせて下さい。
>
> https://xxx.xxx/zabbix/を
> http://xxx.xxx/
> に変換するなど「/zabbix/」というURLのパスを削除する場合です。
>
⇒こちらについて、ドキュメントルートを設定するという対処は不適切であったという認識でしょうか。
ドキュメントルート設定前は、下記の状態でした。
https://xxx.xxx(ロードバランサのIPアドレス)でアクセス⇒Apacheのテストページが表示される
https://xxx.xxx(ロードバランサのIPアドレス)/zabbix/でアクセス⇒「接続がタイムアウトしました」が表示される。
エラーメッセージは下記の通りでした。
/var/log/httpd/error_log
[Fri Feb 01 09:13:55.375070 2019] [:error] [pid 3836] [client XXX.XXX.XXX.1:5952] script '/var/www/html/jsrpc.php' not found or unable to stat, referer: https://XXX.XXX.XXX.XXX/zabbix.php?action=dashboard.view
TNK - 投稿数: 4769
何を利用してどう設定してどのような問題であったのかの詳細な情
報がないので判断できません。
ただ、動けばいいというだけで判断することは危険な場合があるの
で、利用されているものの機能や設定を確認して、何を実現したい
のかを考慮し、できる限り理解した上で設定する努力をされること
をお勧めします。