0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【3分で解決】Cloudflare 521/520エラーが出た時のNginx/FW確認コマンドと安全設定

0
Posted at

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化のフローは本家ブログの解説記事にもまとめています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?