質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

ロードバランサー

ロードバランサー【負荷分散装置】は、複数のサーバへアクセス要求を分散する装置です。 要求を分散することで各サーバが快適な応答速度を保つことを目的としており、 アクセスの多い大規模サイト等は、この装置により 複数のサーバに負荷を分散する事で安定な運用が可能です。

Q&A

解決済

2回答

664閲覧

ロードバランサーを使ったサーバー構成時のメンテナンス表示について

hekimosath

総合スコア11

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

ロードバランサー

ロードバランサー【負荷分散装置】は、複数のサーバへアクセス要求を分散する装置です。 要求を分散することで各サーバが快適な応答速度を保つことを目的としており、 アクセスの多い大規模サイト等は、この装置により 複数のサーバに負荷を分散する事で安定な運用が可能です。

0グッド

0クリップ

投稿2020/08/05 01:34

現在、Webサーバー1台構成で運用しているサービスが拡大したため、
webサーバーを2台構成にしようとしています。

メンテナンス表示については、nginxで、表示用の特定のファイルの有無判定をし、
そのファイルが有った場合は、同サーバー内のメンテナンス用public/index.phpを表示、
なかった場合は、同サーバー内のサービス用public/index.phpを表示する、という形で実装しています。

また、その向き先判定処理の中で、
会社のグローバルIPからアクセスした場合のみ、サービス用public/index.phpを表示させるようにしています。
(※社外IPはメンテナンス画面が表示され、会社IPのみサービスの画面で確認ができるようにする意図です)

IDCFクラウドを使用しており、
その仮想ルータのロードバランサを含めたサーバー構成を行っておりまして、
今回ロードバランサを追加した状態で上記のメンテナンス表示を行った際、
nginxで接続元IPの取得ができず、会社のIPであってもメンテナンス画面が表示されてしまうという事象が発生しました。

不勉強で大変恐縮なのですが、
そもそも、ロードバランサを使ったwebサーバー構築をする場合、
上記のように特定の場合のみメンテナンス表示を解除するというような要件をどのように満たすべきなのでしょうか?

IDCFに限らずで結構ですので、ご回答いただけますと幸いです。
環境によっていろいろな事例があるのであれば情報収集をさせていただきたいので、
ご教示いただきたいと考えています。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

HTTPS終端をロードバランサーで行っているのであれば、
X-Forwarded-ForとかX-Real-IPを使ってアクセス元IPを判断することが出来ます。

ロードバランサー経由のHTTPアクセスについて、アクセス元のIPアドレスは確認できますか?

Using the Forwarded header

上記以外にもnginx X-Forwarded-For 設定あたりで調べてみると欲しい情報が得られるかと思います。

投稿2020/08/05 01:57

tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ロードバランサーでX-Forwarded-For付与してAPサーバーではそのIP使いますよ
どの環境でもロードバランサー挟んでるなら同じ対応だと思うけど

投稿2020/08/05 01:58

hentaiman

総合スコア6415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問