Cloudflareを導入した直後によく発生する「Error 521 (Web Server Is Down)」や「Error 520 (Unknown Error)」の原因特定と、即時解決するためのコマンドまとめです。
1. 最も多い原因:オリジンサーバー側のファイアウォール遮断
Cloudflare経由のアクセスはすべて「CloudflareのプロキシIP」から届きます。
そのため、オリジン側の ufw や fail2ban が「単一IPからの大量アクセス」と誤認して遮断してしまうケースが大半です。
解決手順: Cloudflare公式IPをファイアウォールで許可する
# CloudflareのIPv4帯域をUFWで一括許可(例)
for ip in $(curl -s [https://www.cloudflare.com/ips-v4](https://www.cloudflare.com/ips-v4)); do
sudo ufw allow proto tcp from $ip to any port 80,443 comment 'Cloudflare'
done
# UFWルールの再読み込み
sudo ufw reload
2. Nginxのバッファ溢れによる 520 / 524 エラー対策
Cloudflareから転送されるリクエストヘッダーが肥大化し、Nginxのデフォルトバッファを超えると520エラーが発生します。
nginx.conf の http または server ブロックに以下を追記します。
# バッファサイズの最適化(520/524防止)
proxy_buffers 16 16k;
proxy_buffer_size 16k;
large_client_header_buffers 4 16k;
3. クライアント実IPの復元設定
ログやアクセス制限でCloudflareのIPではなく「訪問者の本当のIP」を取得するため、Nginxに set_real_ip_from を設定します。
# IP復元設定の例
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
# ... (他の公式IP帯)
real_ip_header CF-Connecting-IP;
🛠️ まとめ & 設定自動生成ジェネレーター
IPリストの更新やリバースプロキシ構成の手動記述が面倒な方向けに、ドメインと転送先を入力するだけで最新IPリスト・エラー防止バッファ・SSL設定を含んだ完全なNginx設定ファイルを即時生成するWebツールを公開しています。
👉 Cloudflare × Nginx 設定ジェネレーター(無料Webツール)
※ より詳細なエラー全パターンの切り分け手順や、Origin CA証明書を使った完全常時SSL化のフローは本家ブログの解説記事にもまとめています。