本文へスキップ

リバースプロキシとロードバランサ配下の障害

Pro会員限定上級約40分7レッスン

nginx が web01〜03 に振り分けている構成で、502 と 504 が混ざって出始めました。アクセスログを上流ごとに集計し、error.log の 111 と 110 で「拒否」と「遅すぎる」を読み分け、裏側を直接叩いて確かめます。X-Forwarded-For で本当の利用者を数え、壊れたサーバーを down で切り離します。

対象者: nginx などのリバースプロキシ・ロードバランサの配下で起きる 502 / 504 に対応する方 / 複数台構成の切り分けを身につけたい方

前提知識: TLS② 期限切れ・名前不一致・社内 CA 修了程度(中級「アクセスログで見るネットワーク調査」の awk / sort / uniq -c を使います)

この教材を終えると、できるようになること

  • nginx のアクセスログからステータスコードを集計し、エラーの種類と割合をつかめるようになる。
  • nginx の log_format から列の意味を読み取り、ステータスコードと upstream_addr の組み合わせで集計して、壊れている上流を特定できるようになる。
  • nginx の error.log の (111: Connection refused) と (110: Connection timed out) の意味を説明し、502 と 504 が起きる仕組みを proxy_read_timeout と結びつけて理解する。
  • curl -w と -m を使って上流のサーバーを1台ずつ直接確かめ、000 とかかった時間から「拒否」と「タイムアウト」を見分けられるようになる。
  • $remote_addr と X-Forwarded-For の違いを説明し、ログから本当の利用者の IP を集計できるようになる。また、XFF を信頼する経路を限る必要性を理解する。
  • proxy_next_upstream off の意図を説明し、upstream の server に down を付けて nginx -t → reload で壊れたサーバーを安全に切り離せるようになる。

修了後の姿: プロトコルの中身とネットワーク設計を理解し、複雑な障害の根本原因の特定から再発防止の設計まで任せられるエンジニアへ。

この講座はPro会員限定です。無料の会員登録後、無料レッスンのあるコースから学習を始められます。

リバースプロキシとロードバランサ配下の障害|ネットワーク講座 | InfraDojo