ソフトウェア
中級
リダイレクト(リダイレクト)
HTTP転送/URL変更機構。301(恒久移動)・302(一時移動)・307(保持)・308(永続保持)のステータスコードで実装、Next.js `redirects()`・Vercel rewrites.json・Nginx `return 301`・Cloudflare Rulesetsが代表。
0 回閲覧
0 いいね
2026/4/25 更新
関連タグ
301
302
308
Nginx
概要
リダイレクトは、Web サーバーやアプリケーションがクライアントへ別の URL へ転送する指示を送る仕組みです。HTTP ステータスコード 301(恒久移動)、302(一時移動)、307(保持)、308(永続保持)などを使い、ブラウザや検索エンジンに対してリソースの場所が変わったことを通知します。リダイレクトは SEO 対策やサイト構造の変更時に不可欠で、正しく設定することでユーザー体験を損なわずに URL を統一できます。
主な特徴・仕組み
-
ステータスコードの意味
- 301:恒久的に移動。検索エンジンは旧 URL をインデックスから削除し、新 URL を優先します。
- 302:一時的に移動。検索エンジンは旧 URL を残し、将来再度参照します。
- 307:HTTP メソッドを保持したままリダイレクト。POST などのデータ送信に対しても安全です。
- 308:永続的に保持。301 と同様に検索エンジンに永続移動を示します。
-
転送方法
- URL の変更:
Locationヘッダーに新 URL を設定し、クライアントに再リクエストを促します。 - ステータスコードとヘッダーの組み合わせ:HTTP/1.1 では 3xx 系ステータスと
Locationが必須。 - リダイレクトチェーン:複数のリダイレクトが連続すると遅延が増加。最短で 1 回にまとめることが推奨です。
- URL の変更:
-
パフォーマンスへの影響
- 1 つのリダイレクトで 1 つの TCP ハンドシェイクと HTTP リクエストが発生。
- 10,000 req/s の負荷を持つサーバーでは、リダイレクトが 5ms 以上のレイテンシを生む可能性があります。
-
キャッシュ
- 301/308 はキャッシュ可能。ブラウザは 1 年程度キャッシュし、再リクエストを省略。
- 302/307 はキャッシュされにくく、再リクエストが必要です。
スペック/製品比較表
| 製品名・型番 | 主なリダイレクト機能 | ステータスコード対応 | 1 秒あたりリクエスト | 10Gbps ネットワーク | CPU | メモリ | 備考 |
|---|---|---|---|---|---|---|---|
| Nginx 1.25.2 | return ディレクティブ | 301,302,307,308 | 15,000 | 10Gbps | 3.5GHz | 32GB | 軽量で高速 |
| Apache HTTP Server 2.4.57 | Redirect ディレクティブ | 301,302,307,308 | 8,000 | 1Gbps | 2.6GHz | 16GB | 柔軟なモジュール |
| Varnish Cache 7.0 | VCL でのリダイレクト | 301,302,307,308 | 25,000 | 10Gbps | 3.0GHz | 64GB | 高速キャッシュ層 |
| Cloudflare Workers 2026.1 | Edge でのリダイレクト | 301,302,307,308 | 30,000 | 10Gbps | 2.8GHz | 8GB | CDN と統合 |
| Next.js 13.4 | redirects() API | 301,302,307,308 | 5,000 | 1Gbps | 3.2GHz | 32GB | SSR/SSG に最適 |
- CPU:サーバー側でリダイレクトを処理する際に必要なクロック数。
- メモリ:キャッシュとリクエスト処理に必要。
- ネットワーク:10Gbps は 2026年時点で標準的なデータセンター帯域。
- リクエスト数:同時に処理できるリクエスト数。リダイレクトが多い場合は高い数値が望ましい。
具体例・対応製品
- Nginx
server { listen 80; server_name old.example.com; return 301 https://new.example.com$request_uri; } - Apache
Redirect 301 /old-page https://new.example.com/new-page - Varnish
sub vcl_recv { if (req.url ~ "^/old") { set req.url = regsub(req.url, "^/old", "/new"); return (restart); } } - Cloudflare Page Rules
- 「URL 変更」 → 「301 永続的にリダイレクト」
- Next.js
export async function redirects() { return [ { source: '/blog/:slug', destination: '/articles/:slug', permanent: true, }, ]; } - Vercel
vercel.jsonのrewritesでリダイレクトを設定。
- Amazon CloudFront
- 失敗したオリジンに対して 302 で別オリジンへ転送。
- Microsoft IIS
- 「URL 書き換え」モジュールで 301/302 を設定。
- Google Cloud Load Balancing
- リダイレクトルールを作成し、HTTP での転送を実現。
自作PCでの選び方・注意点
- CPU
- 3.5GHz 以上のクロックがあるとリダイレクト処理が高速。
- メモリ
- 32GB 以上を推奨。キャッシュを多く保持できるため、リダイレクトチェーンが短縮される。
- ストレージ
- NVMe SSD(Samsung 990 Pro 2TB)で 1GB/s 以上の読み書き速度。
- ネットワークカード
- 10Gbps 互換の NIC(Intel X710)で帯域を確保。
- 電源ユニット
- 450W 以上の 80+ Gold 認証。
- 冷却
- 低温で 70% キャッシュヒット率を維持。
- OS
- Linux(Ubuntu 24.04 LTS)で Nginx/Apache のパフォーマンスが高い。
- 監視
- 99.99% 稼働率を維持するため、Prometheus + Grafana で監視。
製品例
| 製品名・型番 | CPU | メモリ | ストレージ | ネットワーク | 電源 | 備考 |
|---|---|---|---|---|---|---|
| ASUS ROG Strix X670E | AMD Ryzen 9 7950X | 64GB | Samsung 990 Pro 2TB | Intel X710 | 750W | 高性能 |
| Intel Core Ultra 9 285K | 5.7GHz ブースト | 32GB | Samsung 990 Pro 1TB | Intel X710 | 650W | 次世代 |
| AMD EPYC 9654 | 3.0GHz | 128GB | Samsung 990 Pro 4TB | Intel X710 | 1kW | データセンター向け |
| Intel Xeon W-3275 | 3.8GHz | 64GB | Samsung 990 Pro 2TB | Intel X710 | 750W | ワークステーション |
| ASUS ROG Strix X670E | 5.7GHz | 32GB | Samsung 990 Pro 2TB | Intel X710 | 750W |
- CPU:リダイレクト処理は CPU 集中型。
- メモリ:キャッシュヒット率を高める。
- ストレージ:高速読み書きで 1GB/s 以上を実現。
- ネットワーク:10Gbps は 2025年時点で標準。
関連用語との違い
| 用語 | 定義 | 主な違い |
|---|---|---|
| リダイレクト | 別 URL へ転送。ステータスコードで指示。 | URL が変わる。 |
| リライト | URL を内部的に書き換え。クライアントは変更を認識しない。 | 物理的な転送は発生しない。 |
| プロキシ | クライアントとサーバー間で中継。 | 透明性が高く、URL は変わらない。 |
| キャッシュ | 以前のレスポンスを保存。 | リダイレクトはキャッシュを生成しない。 |
| フォワード | サーバー側で別サーバへリクエストを送る。 |