503 Service Unavailable とは?原因と対処法
503 Service Unavailableは、サーバーが要求を理解できるものの、 現在は処理できないことを示すHTTPステータスコードです。サイトが消えたとは限らず、 アクセス集中や計画メンテナンスによる一時的な応答であることが一般的です。
A 503 response means the service is temporarily unable to handle the request. Overload and scheduled maintenance are the two most common causes.
TL;DR
- 503はサーバーが一時的に処理不能であることを表す
- 主な原因はアクセス集中による過負荷、または意図的なメンテナンス
Retry-Afterがあれば指定時間まで待ってから再試行する- 訪問者はリロードを連打せず、運営者は原因と復旧見込みを伝える
1. 503が出た訪問者側の対処
まず数分待ち、ページを1回だけ再読み込みします。503はサーバー側の一時的な事情を表すため、 Cookie削除やブラウザ再インストールで直るケースは多くありません。 公式SNS、ステータスページ、メンテナンス告知も確認しましょう。
リロード連打を避ける理由
短時間に何度もリロードすると混雑中のサーバーへさらに要求を送り、復旧を遅らせます。 CDNやWAFのレート制限に達し、503解消後も一時的に拒否される原因にもなります。 複数タブや複数端末で同時に試すことも避けます。
チケット販売・申請サイトなどの混雑時
待機室や整理券の再試行時刻が表示されているなら、その案内を優先します。 戻る・進む・更新を繰り返すと待機順が失われることがあるため、1つのタブを保ちます。 決済途中なら再購入前に注文履歴や通知を確認し、二重購入を防ぎます。
| 状況 | 推奨する行動 | 避けたい行動 |
|---|---|---|
| Retry-Afterあり | 指定時間まで待つ | 指定前の連続再試行 |
| 混雑イベント | 1つのタブで待つ | 複数端末から連打 |
| 決済途中 | 履歴と通知を確認 | すぐ再注文 |
| 長時間継続 | 公式障害情報を確認 | 端末設定を無闇に変更 |
2. 運営者側で確認する原因
503はWebサーバーだけでなく、ロードバランサー、CDN、リバースプロキシ、 アプリケーション基盤が生成することもあります。ヘッダ、ログ、メトリクスを同時刻で照合し、 どのレイヤーが503を返したかを最初に特定します。
| 原因 | 典型的な兆候 | 最初の確認 |
|---|---|---|
| アクセス集中 | 要求数と待ち時間が上昇 | RPS、キュー長、スケール履歴 |
| バックエンド飽和 | DB接続やワーカーが枯渇 | 接続数、スレッド数、遅い処理 |
| 全ターゲット除外 | 正常な転送先がない | ヘルスチェックのパスと条件 |
| 意図的メンテナンス | 切替時刻から一律503 | 作業計画、解除手順、終了予定 |
| リソース上限 | CPU、メモリ、FDの上限 | OS・コンテナ・クラウド制限 |
Find the component that generated the 503 before changing capacity. Zero healthy targets need a different fix from an exhausted worker pool.
3. Retry-After付きで正しく503を返す
計画メンテナンスや復旧目安が分かる過負荷では、Retry-After付き503が推奨されます。 秒数またはHTTP-date形式の日時を示します。クライアントは値を尊重し、 再試行にランダムな揺らぎを加えるとリトライストームを抑えられます。
HTTP/1.1 503 Service Unavailable
Content-Type: text/html; charset=utf-8
Retry-After: 3600
Cache-Control: no-store
Service temporarily unavailableこの例は1時間後の再試行を案内します。日時形式も使えますが、 サーバー時刻のずれを避けるには秒数指定が扱いやすいでしょう。
SEOへの影響
一時的な503を受けたGooglebotは通常URLをすぐ削除せず、後で再訪します。 メンテナンス画面なら200より503のほうが、本来の内容が一時停止中だと伝えられます。 ただし長期間続けばクロール頻度が下がり、最終的にインデックスから落ちる可能性があります。
4. nginx・Apacheのメンテナンス設定例
専用HTMLまで503処理へ巻き込まないよう、メンテナンスページだけは配信可能にします。
nginx
server {
listen 80;
server_name example.com;
root /var/www/html;
error_page 503 /maintenance.html;
location = /maintenance.html {
internal;
}
add_header Retry-After 3600 always;
return 503;
}設定テスト後に再読み込みし、解除時はreturn 503とRetry-Afterを同時に外します。
Apache HTTP Server
ErrorDocument 503 /maintenance.html
Header always set Retry-After "3600"
Redirect 503 /mod_headersとmod_aliasを確認し、本番反映前に応答コードとヘッダを検証してください。
5. 502 Bad Gatewayとの違い
503はサービスが一時的に処理できない状態です。502はプロキシが上流から無効な応答を受けた状態、 504は上流応答の時間切れです。詳しくは502・503・504の違いと切り分けを参照してください。
6. 避けるべきアンチパターン
メンテナンス画面を200 OKで返す
全URLで同じ文面を200として返すと、検索エンジンが正常な本文と解釈するSEO事故につながります。一時停止ならRetry-After付き503を返します。
503のまま放置する
503は一時的であることが前提です。終了条件、解除担当、ロールバック手順を決め、外部監視で200への復帰を確認します。
同じ間隔で再試行させる
固定間隔の再試行は周期的な負荷を作ります。指数バックオフ、ランダムな揺らぎ、最大試行回数を組み合わせます。
7. よくある質問 / FAQ
503はどのくらい待てば治る?
Retry-Afterがあれば従い、なければ数分から時間を置きます。長引く場合は公式情報を確認します。
アクセス集中の503で自分にできることは?
リロードを連打せず案内に従います。混雑サイトでは1つのタブを維持し、決済後なら履歴を確認します。
メンテナンス時は503と200どちらを返すべき?
一時的な停止なら原則503です。復旧目安がある場合はRetry-Afterも付けます。
8. English summary
503 Service Unavailable means the server is temporarily unable to handle a request, usually because of overload or maintenance. Visitors should avoid repeated refreshes and follow Retry-After. Operators should identify the failing layer and return 503 instead of 200 for temporary maintenance. Prolonged downtime can eventually remove pages from the search index.
よくある質問 / FAQ
- 503はどのくらい待てば治る?
- 決まった時間はありません。Retry-Afterがあれば指定時間まで待ち、なければ数分から時間を置いて再試行します。長時間続く場合は公式の障害・メンテナンス情報を確認してください。
- アクセス集中の503で自分にできることは?
- リロードを連打せず、Retry-Afterやサイトの案内に従って待ちます。複数タブや複数端末からの連続アクセスは混雑やレート制限を悪化させるため避けます。
- メンテナンス時は503と200どちらを返すべき?
- 一時的なメンテナンスではRetry-After付きの503を返します。200でメンテナンス画面を返すと、検索エンジンが本来のページ内容として扱うおそれがあります。
- Retry-Afterヘッダとは?
- クライアントが再試行するまで待つべき時間を示すHTTPレスポンスヘッダです。秒数またはHTTP-date形式の日時で指定でき、503や429で利用されます。
- What does 503 Service Unavailable mean?
- HTTP 503 means the server is temporarily unable to handle the request, commonly because it is overloaded or under maintenance. Wait before retrying, especially when a Retry-After header is present.
- 503が長引くとSEOに影響する?
- 短時間の503なら検索エンジンは後で再訪しますが、長期間続くとクロール頻度が下がり、最終的にURLがインデックスから除外される可能性があります。