Error 522 — Connection Timed Out

วิธีแก้ไข Error 522
บน WordPress + Cloudflare

คู่มือฉบับสมบูรณ์สำหรับวิเคราะห์สาเหตุ แก้ไขปัญหา และป้องกันไม่ให้ Error 522 Connection Timed Out กลับมาอีก

📖 อ่าน ~12 นาที 🔧 ระดับ: ปานกลาง–สูง 📅 อัปเดต: พ.ค. 2026
01

Error 522 คืออะไร?

Error 522 (Connection Timed Out) เป็น HTTP Status Code ที่เกิดจาก Cloudflare ไม่สามารถสร้างการเชื่อมต่อ TCP กับ Origin Server (เซิร์ฟเวอร์ต้นทางของคุณ) ได้ภายในเวลาที่กำหนด โดยปกติคือ 15 วินาที สำหรับ TCP handshake และ 100 วินาที สำหรับ HTTP response

พูดง่ายๆ คือ Cloudflare ทำหน้าที่เป็น "ตัวกลาง" ระหว่างผู้เยี่ยมชมเว็บไซต์กับเซิร์ฟเวอร์ของคุณ เมื่อ Cloudflare พยายามส่งคำร้องไปยังเซิร์ฟเวอร์ต้นทาง แต่ไม่ได้รับการตอบกลับ จึงแสดงหน้า Error 522 ให้ผู้เยี่ยมชมเห็น

👤 ผู้เยี่ยมชม
☁️ Cloudflare
→ ✕
🖥️ Origin Server
Cloudflare ติดต่อ Origin Server ไม่ได้ → แสดง Error 522
⚠️

Error 522 แตกต่างจาก Error 521 ตรงที่ 521 หมายถึงเซิร์ฟเวอร์ปฏิเสธการเชื่อมต่อ (connection refused) ส่วน 522 หมายถึงเซิร์ฟเวอร์ไม่ตอบกลับภายในเวลาที่กำหนด (connection timed out)

02

สาเหตุที่พบบ่อย

Error 522 ไม่ได้เกิดจากสาเหตุเดียว แต่มีหลายปัจจัยที่อาจเป็นต้นเหตุ:

🔥

เซิร์ฟเวอร์โอเวอร์โหลด

เซิร์ฟเวอร์รับคำร้องมากเกินไปจนไม่สามารถประมวลผลได้ทัน พบบ่อยใน Shared Hosting

🛡️

Firewall บล็อก IP Cloudflare

Firewall ของเซิร์ฟเวอร์หรือปลั๊กอิน WordPress บล็อก IP ของ Cloudflare โดยไม่ตั้งใจ

🌐

DNS Record ไม่ถูกต้อง

A Record ชี้ไปยัง IP ที่ผิดหรือเซิร์ฟเวอร์ที่ถูกยกเลิกแล้ว

📡

ปัญหาเครือข่าย

เส้นทาง Network ระหว่าง Cloudflare กับ Origin Server มีปัญหาหรือ Routing ผิดพลาด

⏱️

Keep-Alive ถูกปิด

เว็บเซิร์ฟเวอร์ปิด TCP Keep-Alive ทำให้ Connection ถูกตัดก่อนที่ Cloudflare จะได้รับ Response

🔒

SSL/TLS ตั้งค่าผิด

โหมด SSL ใน Cloudflare ไม่ตรงกับใบรับรองที่ติดตั้งบนเซิร์ฟเวอร์

03

วิเคราะห์ปัญหาเบื้องต้น

ก่อนจะลงมือแก้ไข ต้องหาสาเหตุที่แท้จริงก่อน:

1 ทดสอบว่าเซิร์ฟเวอร์ออนไลน์หรือไม่

เปิด Terminal แล้ว Ping ไปยัง IP ของ Origin Server โดยตรง:

Terminal
# Ping ไปยัง Origin Server
ping your-server-ip

# ทดสอบการเชื่อมต่อ HTTP โดยตรง
curl -I http://your-server-ip

# ตรวจสอบ Port 443 (HTTPS)
curl -I --connect-timeout 10 https://your-domain.com --resolve your-domain.com:443:your-server-ip

2 ตรวจสอบ Cloudflare Dashboard

เข้าไปที่ Cloudflare Dashboard → Analytics & Logs → Overview เพื่อดูว่ามี 522 errors เกิดขึ้นบ่อยแค่ไหน เกิดเฉพาะบางภูมิภาคหรือเกิดทั่วโลก

3 ตรวจสอบ Server Logs

Terminal
# ดู Error Log ของ Apache
tail -f /var/log/apache2/error.log

# ดู Error Log ของ Nginx
tail -f /var/log/nginx/error.log

# ตรวจสอบทรัพยากรเซิร์ฟเวอร์
top
free -m
df -h
04

วิธีแก้ไขทีละขั้นตอน

1
Whitelist IP ของ Cloudflare ที่ Firewall ของเซิร์ฟเวอร์

สาเหตุอันดับ 1 ที่พบบ่อยที่สุด คือ Firewall ของเซิร์ฟเวอร์บล็อก IP ของ Cloudflare เนื่องจาก Traffic ทั้งหมดจะมาจาก IP ของ Cloudflare แทนที่จะมาจาก IP ของผู้เยี่ยมชมจริง ทำให้ระบบ Rate Limiting หรือ Firewall อาจตีความว่าเป็นการโจมตี

ดาวน์โหลดรายการ IP ล่าสุดได้ที่ https://www.cloudflare.com/ips/

CSF Firewall
# เพิ่ม Cloudflare IPs เข้า CSF Allow List
nano /etc/csf/csf.allow

# เพิ่ม IP ranges ต่อไปนี้:
173.245.48.0/20
103.21.244.0/22
103.22.200.0/22
103.31.4.0/22
141.101.64.0/18
108.162.192.0/18
190.93.240.0/20
188.114.96.0/20
197.234.240.0/22
198.41.128.0/17
162.158.0.0/15
104.16.0.0/13
104.24.0.0/14
172.64.0.0/13
131.0.72.0/22

# รีสตาร์ท CSF
csf -r
UFW Firewall
# อนุญาต Cloudflare IPs ผ่าน UFW
for ip in 173.245.48.0/20 103.21.244.0/22 103.22.200.0/22 \
103.31.4.0/22 141.101.64.0/18 108.162.192.0/18 \
190.93.240.0/20 188.114.96.0/20 197.234.240.0/22 \
198.41.128.0/17 162.158.0.0/15 104.16.0.0/13 \
104.24.0.0/14 172.64.0.0/13 131.0.72.0/22; do
  ufw allow from $ip to any port 443
  ufw allow from $ip to any port 80
done

ufw reload
🚨

อย่าลืม Whitelist ทั้ง IPv4 และ IPv6 ranges ของ Cloudflare ไม่เช่นนั้นผู้เยี่ยมชมบางส่วนจะยังคงเจอ Error 522 อยู่

2
ตรวจสอบ DNS Records ใน Cloudflare

ตรวจสอบว่า A Record ชี้ไปยัง IP ที่ถูกต้องของเซิร์ฟเวอร์ ไม่ใช่ IP เก่าที่ถูกยกเลิกแล้ว:

เข้า Cloudflare Dashboard → DNS → Records แล้วตรวจสอบว่า A Record มี IP ตรงกับที่ Hosting Provider แจ้งไว้ และต้องแน่ใจว่าเปิด Proxy (ไอคอนเมฆสีส้ม ☁️) อยู่

Terminal
# ตรวจสอบ DNS Resolution
dig +short your-domain.com
nslookup your-domain.com

# ตรวจสอบว่า IP ที่ได้คือ IP ของ Cloudflare (ถูกต้อง)
# ไม่ใช่ IP ของ Origin Server โดยตรง
3
เปิด TCP Keep-Alive บนเว็บเซิร์ฟเวอร์

Cloudflare ต้องการให้ Origin Server เปิด TCP Keep-Alive ไว้ หากปิดอยู่จะทำให้ Connection ถูกตัดก่อนที่ Response จะส่งกลับได้

Apache — httpd.conf
# เปิด KeepAlive
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
Nginx — nginx.conf
# ภายใน http block
keepalive_timeout 75;
keepalive_requests 100;
4
ตรวจสอบและปรับแต่ง SSL/TLS Mode

ไปที่ Cloudflare Dashboard → SSL/TLS → Overview แล้วตั้งค่าให้เหมาะสม:

หากเซิร์ฟเวอร์มี SSL Certificate ที่ Valid แล้ว → ใช้ Full (Strict)
หากเซิร์ฟเวอร์มี Self-Signed Certificate → ใช้ Full
หากไม่มี SSL เลย → ใช้ Flexible (แต่ไม่แนะนำ)

⚠️

หลีกเลี่ยงการใช้โหมด Flexible เพราะทำให้การเชื่อมต่อระหว่าง Cloudflare กับ Origin Server ไม่ถูกเข้ารหัส ควรใช้ Full (Strict) เสมอเมื่อเป็นไปได้

5
ตรวจสอบทรัพยากรเซิร์ฟเวอร์ (CPU / RAM / Disk)

หากเซิร์ฟเวอร์ใช้ทรัพยากรจนเต็ม ก็จะไม่สามารถรับ Connection ใหม่จาก Cloudflare ได้:

Terminal
# ตรวจสอบ CPU และ RAM
top -bn1 | head -20
free -m

# ตรวจสอบพื้นที่ดิสก์
df -h

# ตรวจสอบจำนวน Connection ปัจจุบัน
netstat -an | grep :80 | wc -l
netstat -an | grep :443 | wc -l

# ตรวจ Process ที่กิน Resource มากที่สุด
ps aux --sort=-%mem | head -10

หากทรัพยากรใกล้เต็ม ควรพิจารณาอัปเกรด Hosting Plan หรือเปลี่ยนจาก Shared Hosting เป็น VPS/Cloud Hosting

6
ตรวจสอบ Hosting Provider

บางครั้งปัญหาอาจอยู่ที่ฝั่ง Hosting Provider เอง:

ติดต่อ Support ของ Hosting Provider เพื่อถามว่ามีการ Maintenance หรือมีปัญหาด้าน Network หรือไม่ และขอให้ตรวจสอบว่าเซิร์ฟเวอร์ไม่ได้บล็อก IP ranges ของ Cloudflare

หากใช้ Shared Hosting แล้วเจอปัญหานี้บ่อย อาจเป็นสัญญาณว่าเซิร์ฟเวอร์ที่แชร์อยู่มีโหลดมากเกินไป ควรพิจารณาย้ายไปใช้ VPS หรือ Managed WordPress Hosting

7
ตั้งค่า Cloudflare Timeout ให้เหมาะสม

สำหรับผู้ใช้ Cloudflare แผน Enterprise สามารถปรับ Proxy Read Timeout ได้ แต่สำหรับแผนฟรีและ Pro ค่า Timeout จะอยู่ที่ 100 วินาที ซึ่งเพียงพอสำหรับเว็บไซต์ส่วนใหญ่

หากเว็บไซต์มี Process ที่ใช้เวลานาน (เช่น WooCommerce import ข้อมูลจำนวนมาก) ให้พิจารณาใช้ Background Processing หรือ WP-Cron แทนการรันผ่าน HTTP Request ตรง

05

การตั้งค่า WordPress เฉพาะทาง

🔌 ตรวจสอบ Security Plugins

ปลั๊กอินความปลอดภัยอย่าง Wordfence, Sucuri, iThemes Security อาจบล็อก IP ของ Cloudflare โดยไม่ตั้งใจ ให้เข้าไปตรวจสอบ:

ในหน้าตั้งค่าของปลั๊กอิน ไปที่ส่วน Firewall หรือ IP Blocking แล้วเพิ่ม IP ranges ของ Cloudflare เข้าไปใน Whitelist/Allowlist

💡

Wordfence: ไปที่ Wordfence → Firewall → Blocking แล้วตรวจว่าไม่มี IP ของ Cloudflare ถูกบล็อกอยู่ และเปิด "Whitelisted IP addresses" สำหรับ Cloudflare ranges

ปิดปลั๊กอินที่กินทรัพยากร

ปลั๊กอินบางตัวอาจทำให้เซิร์ฟเวอร์ทำงานช้าจนเกิด Timeout:

ลองปิดปลั๊กอินทีละตัวเพื่อหาว่าตัวไหนเป็นสาเหตุ โดยเฉพาะปลั๊กอินที่ทำ Backup อัตโนมัติ, รัน Cron Job หนักๆ, หรือปลั๊กอิน Page Builder ที่ใช้ทรัพยากรมาก

WP-CLI
# ดูรายชื่อปลั๊กอินทั้งหมด
wp plugin list

# ปิดปลั๊กอินทั้งหมดเพื่อทดสอบ
wp plugin deactivate --all

# เปิดทีละตัวเพื่อหาตัวที่มีปัญหา
wp plugin activate plugin-name

🗄️ เพิ่มประสิทธิภาพ Database

Database ที่มีข้อมูลสะสมมาก (post revisions, transients, spam comments) ทำให้ Query ช้าและเซิร์ฟเวอร์ตอบสนองช้าลง:

WP-CLI / SQL
# ลบ Post Revisions
wp post delete $(wp post list --post_type=revision --format=ids) --force

# ลบ Transients ที่หมดอายุ
wp transient delete --expired

# Optimize Database Tables
wp db optimize

📝 ตั้งค่า wp-config.php

เพิ่มค่าเหล่านี้ใน wp-config.php เพื่อเพิ่ม Memory Limit และลดปัญหา Timeout:

PHP — wp-config.php
// เพิ่ม Memory Limit
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');

// จำกัด Post Revisions
define('WP_POST_REVISIONS', 5);

// ปิด WP-Cron แล้วใช้ Server Cron แทน
define('DISABLE_WP_CRON', true);
06

ป้องกันไม่ให้เกิดซ้ำ

ใช้ Cloudflare Features ช่วยลดโหลด

Page Rules / Cache Rules: ตั้งค่า Cache ให้ Cloudflare เก็บไฟล์ Static ไว้ที่ Edge Server เพื่อลดจำนวน Request ที่ไปถึง Origin Server

Argo Smart Routing: ช่วยหาเส้นทางที่เร็วที่สุดจาก Cloudflare ไปยังเซิร์ฟเวอร์ของคุณ ลดโอกาสเกิด Timeout

Rate Limiting: ตั้งค่า Rate Limiting เพื่อป้องกันไม่ให้ Bot หรือ Traffic ผิดปกติทำให้เซิร์ฟเวอร์โอเวอร์โหลด

Monitoring & Alerting

ตั้งค่า Health Checks ใน Cloudflare เพื่อให้ระบบแจ้งเตือนเมื่อ Origin Server ไม่ตอบสนอง และเปิดใช้ Origin Error Rate Alert เพื่อรับการแจ้งเตือนเมื่อมี 5xx Error เพิ่มขึ้นผิดปกติ

อัปเกรด Hosting ให้เหมาะสม

หากเว็บไซต์มี Traffic สูงหรือรัน WooCommerce ควรพิจารณาใช้ Managed WordPress Hosting หรือ VPS ที่มีทรัพยากรเพียงพอ เพราะ Shared Hosting มีข้อจำกัดด้านทรัพยากรที่อาจทำให้เกิด Error 522 ในช่วงที่มี Traffic สูง

07

Checklist สรุปท้ายบทความ

✅ สิ่งที่ต้องตรวจสอบทั้งหมด

Whitelist IP ranges ของ Cloudflare ทั้ง IPv4 และ IPv6 ที่ Firewall ของเซิร์ฟเวอร์
ตรวจสอบ A Record ใน Cloudflare DNS ว่าชี้ไปยัง IP ที่ถูกต้อง
เปิด TCP Keep-Alive บน Apache/Nginx
ตั้ง SSL/TLS Mode เป็น Full (Strict) พร้อม Valid Certificate
ตรวจทรัพยากรเซิร์ฟเวอร์ (CPU, RAM, Disk) ว่าไม่เต็ม
ตรวจ Security Plugins (Wordfence, Sucuri) ว่าไม่ได้บล็อก Cloudflare
ปิดปลั๊กอินที่กินทรัพยากรมากหรือไม่จำเป็น
Optimize Database (ลบ Revisions, Transients, Spam)
เพิ่ม WP_MEMORY_LIMIT ใน wp-config.php
ตั้งค่า Cloudflare Cache Rules เพื่อลดโหลดที่ Origin
เปิด Health Check & Origin Error Rate Alert ใน Cloudflare
ติดต่อ Hosting Provider หากปัญหายังไม่หาย

ต้องการผู้เชี่ยวชาญช่วยแก้ไข?

หากคุณลองทำตามขั้นตอนทั้งหมดแล้วยังแก้ไขไม่ได้ ติดต่อทีมผู้เชี่ยวชาญของเราเพื่อรับบริการแก้ไข Error 522 อย่างมืออาชีพ

📞 ติดต่อรับบริการ