Lỗi 522 connection timed out xuất hiện khi Cloudflare bắt được tay với máy chủ gốc nhưng máy chủ không phản hồi kịp, khiến cả website biến mất khỏi trình duyệt chỉ trong vài giây. Khách đang mua hàng, form đang gửi, traffic đang lên thì màn hình hiện đúng một dòng báo lỗi. Bài viết này đi thẳng vào bản chất và 5 cách fix thực chiến đã chạy trên hệ thống thật của InterData.
NỘI DUNG BÀI VIẾT
Lỗi 522 Connection Timed Out là gì?
Lỗi 522 connection timed out là mã lỗi do Cloudflare trả về khi nó mở được kết nối TCP tới máy chủ gốc (origin server) của bạn nhưng máy chủ đó không hoàn tất phản hồi trong thời gian cho phép. Nói ngắn gọn: Cloudflare vẫn sống, nhưng server thật phía sau đang chậm, treo hoặc chặn kết nối.
Điểm cần nhớ là 522 không phải lỗi của trình duyệt hay của khách. Nó nằm ở đoạn đường giữa Cloudflare và máy chủ của bạn. Khi proxy bật màu cam được kích hoạt, mọi request đi qua Cloudflare trước, rồi mới về origin. Nếu chặng cuối này nghẽn, người dùng nhận về trang lỗi của Cloudflare thay vì website.
- Bản chất: Cloudflare gửi gói SYN, nhận được SYN-ACK nhưng sau đó origin im lặng quá lâu nên Cloudflare ngắt và báo timeout.
- Khác với 521: Lỗi 521 nghĩa là origin từ chối thẳng kết nối (Connection Refused), còn 522 là kết nối mở được nhưng không có phản hồi kịp.
- Khác với 524: Lỗi 524 là origin có phản hồi nhưng vượt ngưỡng thời gian xử lý (thường 100 giây), còn 522 đứt ngay ở bước thiết lập kết nối.
Phân biệt được ba mã 521, 522, 524 giúp bạn khoanh vùng đúng chỗ ngay từ đầu, thay vì sửa lung tung. Tài liệu mô tả chi tiết các mã này có trong trang Cloudflare 5xx Errors của Cloudflare.

Vì sao web báo lỗi 522: 6 nguyên nhân gốc
Trước khi gõ bất kỳ lệnh nào, bạn nên hiểu lỗi 522 đến từ đâu. Phần lớn ca thực tế rơi vào sáu nhóm dưới đây. Khoanh đúng nhóm thì việc sửa nhanh hơn rất nhiều.
- Máy chủ gốc treo hoặc chết dịch vụ: Apache, Nginx, hoặc cả VPS bị down. Đây là nguyên nhân phổ biến nhất.
- Firewall chặn dải IP Cloudflare: Tường lửa của VPS hoặc nhà cung cấp chặn IP của Cloudflare, nên request không bao giờ tới được web server.
- Server quá tải, phản hồi chậm: CPU đầy, RAM cạn, swap chạy liên tục, MySQL nghẽn truy vấn khiến server không kịp trả lời trong ngưỡng timeout.
- Cấu hình SSL chưa đồng bộ: Cloudflare gọi vào cổng 443 nhưng origin không mở 443 hoặc chứng chỉ sai chế độ, gây timeout ở chặng mã hóa.
- Sai địa chỉ IP origin trong DNS: Bản ghi A trỏ về một IP cũ, IP đã đổi hoặc IP không còn tồn tại sau khi di chuyển máy chủ.
- Vấn đề định tuyến mạng: Nhà cung cấp hosting bị nghẽn tuyến hoặc null-route IP do nghi ngờ tấn công, khiến gói tin của Cloudflare không về đích.
Một dấu hiệu hữu ích: nếu bạn truy cập thẳng IP origin (bỏ qua Cloudflare) mà web vẫn không lên, lỗi gần như chắc chắn nằm ở phía server hoặc firewall, không phải Cloudflare.
5 cách fix lỗi 522 connection timed out dứt điểm
Năm cách dưới đây xếp theo đúng thứ tự bạn nên làm khi web đang sập. Đi từ kiểm tra nhanh nhất đến xử lý gốc rễ. Mỗi bước có lệnh cụ thể và cách kiểm tra lại sau khi sửa.
Cách 1: Kiểm tra máy chủ gốc còn sống hay không
Việc đầu tiên là xác nhận VPS và web server còn chạy. Khoảng một nửa số ca 522 chỉ vì dịch vụ web chết hoặc VPS bị treo. SSH vào máy và kiểm tra theo thứ tự.
# Kiểm tra tài nguyên và tải hệ thống uptime free -h df -h # Kiểm tra trạng thái web server (chọn đúng dịch vụ bạn dùng) systemctl status nginx systemctl status apache2 # Debian/Ubuntu systemctl status httpd # CentOS/RHEL/AlmaLinux # Thử gọi web từ chính máy chủ, không qua Cloudflare curl -I http://127.0.0.1 curl -I https://127.0.0.1 --insecure
Nếu lệnh systemctl status báo inactive hoặc failed, khởi động lại dịch vụ. Nếu curl tới localhost không trả về mã 200/301/302, lỗi nằm ngay trong web server hoặc ứng dụng, chưa liên quan đến Cloudflare.
# Khởi động lại web server sudo systemctl restart nginx # hoặc sudo systemctl restart apache2 # Xem log để biết nguyên nhân nếu khởi động thất bại sudo journalctl -u nginx --no-pager -n 50 sudo tail -n 100 /var/log/nginx/error.log
Cách kiểm tra lại: chạy lại curl -I http://127.0.0.1. Có mã phản hồi hợp lệ nghĩa là origin đã sống. Sau đó tải lại website. Nếu vẫn 522, chuyển sang cách 2.
Cách 2: Mở port cho dải IP Cloudflare trong firewall
Nếu server sống mà ngoài vẫn 522, khả năng cao firewall đang chặn Cloudflare. Cloudflare chỉ kết nối tới origin từ một dải IP cố định. Bạn cần cho phép các dải này vào cổng 80 và 443. Danh sách IP chính thức nằm tại trang Cloudflare IP Ranges, hãy lấy bản mới nhất từ đó.
Với UFW trên Ubuntu/Debian, bạn lặp qua từng dải IPv4 của Cloudflare:
# Tự động thêm toàn bộ dải IPv4 của Cloudflare vào UFW for ip in $(curl -s https://www.cloudflare.com/ips-v4); do sudo ufw allow from $ip to any port 443 proto tcp sudo ufw allow from $ip to any port 80 proto tcp done sudo ufw reload
Với firewalld trên CentOS/AlmaLinux/RHEL:
for ip in $(curl -s https://www.cloudflare.com/ips-v4); do sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=$ip port port=443 protocol=tcp accept" done sudo firewall-cmd --reload
Nếu bạn dùng panel có CSF, thêm các dải Cloudflare vào file /etc/csf/csf.allow rồi chạy csf -r. Đừng quên kiểm tra cả tường lửa ở tầng nhà cung cấp (security group, cloud firewall), vì nó nằm ngoài hệ điều hành và dễ bị bỏ sót.
Cách kiểm tra lại: từ một máy khác, thử curl -I https://IP_ORIGIN với header Host là tên miền của bạn. Nếu có phản hồi, đường vào đã thông cho Cloudflare.
Cách 3: Xử lý server quá tải và phản hồi chậm
Server không chết nhưng chậm tới mức Cloudflare chờ hết giờ cũng gây 522. Thường gặp khi traffic tăng đột biến, một plugin nặng, hoặc truy vấn database treo. Bạn cần tìm thứ đang ăn tài nguyên.
# Xem tiến trình ngốn CPU và RAM nhất top -o %CPU htop # Đếm số kết nối đang đổ vào cổng 80/443 ss -ant | grep -E ':80|:443' | wc -l # Kiểm tra MySQL/MariaDB có truy vấn treo không mysqladmin processlist # Trong MySQL: SHOW FULL PROCESSLIST; # Theo dõi PHP-FPM nếu dùng WordPress/Laravel sudo systemctl status php8.2-fpm sudo tail -n 50 /var/log/php8.2-fpm.log
Hướng xử lý tùy nguyên nhân tìm được. Nếu một process lỗi ăn 100% CPU, kill nó và tìm gốc. Nếu MySQL nghẽn vì truy vấn chậm, tối ưu index hoặc bật cache. Nếu RAM cạn và swap chạy liên tục, đó là dấu hiệu cấu hình không đủ cho lượng truy cập hiện tại.
- Bật caching: dùng OPcache cho PHP, page cache cho WordPress, để giảm tải xử lý động.
- Giới hạn worker hợp lý: chỉnh
pm.max_childrencủa PHP-FPM theo RAM thực, tránh để fork quá nhiều process gây cạn bộ nhớ. - Tăng keep-alive về origin: bật
keepaliveở Nginx upstream để giảm chi phí bắt tay kết nối lặp lại.
Cách kiểm tra lại: theo dõi uptime và free -h trong vài phút sau khi xử lý. Tải về mức ổn định và web phản hồi dưới 1-2 giây nghĩa là bạn đã gỡ được điểm nghẽn.
Cách 4: Đồng bộ cấu hình SSL giữa Cloudflare và origin
Lỗi 522 đôi khi đến từ chế độ SSL lệch nhau. Nếu Cloudflare đặt chế độ Full hoặc Full (Strict), nó sẽ gọi vào cổng 443 của origin. Origin không mở 443, hoặc không có chứng chỉ hợp lệ, sẽ khiến kết nối chặng cuối treo.
# Kiểm tra cổng 443 có đang lắng nghe không sudo ss -tlnp | grep ':443' # Kiểm tra chứng chỉ trên origin còn hạn không echo | openssl s_client -connect 127.0.0.1:443 -servername tenmien.com 2>/dev/null | openssl x509 -noout -dates
Đối chiếu với chế độ SSL trong Cloudflare (mục SSL/TLS, phần Overview). Nguyên tắc chọn:
| Chế độ SSL | Điều kiện origin | Rủi ro 522 |
|---|---|---|
| Flexible | Origin chỉ cần mở cổng 80 | Thấp, nhưng dễ vòng lặp redirect |
| Full | Origin mở 443, chứng chỉ bất kỳ | Cao nếu 443 đóng |
| Full (Strict) | Origin mở 443, chứng chỉ hợp lệ còn hạn | Cao nếu cert hết hạn hoặc sai tên miền |
Giải pháp bền là cài chứng chỉ hợp lệ trên origin (Let’s Encrypt hoặc Cloudflare Origin Certificate) rồi để chế độ Full (Strict). Cách này vừa tránh 522 do SSL, vừa mã hóa trọn đường truyền.
Cách kiểm tra lại: sau khi mở 443 và đồng bộ chế độ, chạy lại lệnh openssl s_client ở trên. Chứng chỉ trả về đúng tên miền và còn hạn là đạt.
Cách 5: Nâng cấp hạ tầng khi tài nguyên không còn đủ
Nếu lỗi 522 lặp lại đúng vào giờ cao điểm hoặc mỗi đợt chạy campaign, vấn đề không còn là cấu hình mà là tài nguyên. Bạn đã tối ưu cache, tinh chỉnh worker mà server vẫn nghẽn nghĩa là phần cứng đang chạm trần.
- Dấu hiệu cần nâng cấp: load trung bình thường xuyên vượt số core, RAM dùng gần hết và swap chạy liên tục, thời gian phản hồi tăng dần theo lượng khách.
- Hướng đi: tăng RAM và CPU của VPS, hoặc chuyển sang Cloud Server để co giãn tài nguyên theo tải mà không phải cài lại từ đầu.
Với website có lượng truy cập biến động mạnh, database lớn hoặc nhiều người dùng đồng thời, mô hình Cloud Server hợp lý hơn vì bạn nâng hoặc hạ tài nguyên theo nhu cầu thực. Chi tiết khác biệt giữa hai dòng có trong trang dịch vụ Cloud Server của InterData.
Checklist kiểm tra nhanh khi gặp lỗi 522 connection timed out
Khi web đang sập, bạn không có thời gian đọc lại cả bài. Dưới đây là trình tự rút gọn để chạy theo thứ tự. Mỗi bước trả lời một câu hỏi rồi dẫn sang bước tiếp.
- VPS còn ping được không? Còn thì SSH vào, không thì liên hệ nhà cung cấp kiểm tra phần cứng và định tuyến.
- Web server (Nginx/Apache) còn chạy không? Dùng
systemctl status, nếu chết thì restart. curltới localhost có trả mã hợp lệ không? Không thì lỗi ở ứng dụng hoặc web server.- Firewall có cho dải IP Cloudflare vào cổng 80/443 chưa? Chưa thì mở theo cách 2.
- Tải hệ thống có cao bất thường không? Có thì tìm process ngốn tài nguyên theo cách 3.
- Chế độ SSL của Cloudflare có khớp với cổng và chứng chỉ trên origin không? Lệch thì đồng bộ theo cách 4.
Một mẹo tạm thời khi cần web lên gấp: bật chế độ Under Attack hoặc tạm tắt proxy (chuyển đám mây cam thành xám) để truy cập thẳng origin. Đây chỉ là cách chữa cháy, không thay cho việc sửa gốc.
Khi nào nên nâng cấp VPS hoặc Cloud Server để tránh lỗi 522
Sửa lỗi 522 một lần là chuyện kỹ thuật. Để nó không tái diễn lại là chuyện hạ tầng. Nếu bạn đang dùng gói tài nguyên thấp và website đã lớn hơn lúc mới làm, đây là lúc cân nhắc nâng cấp.
| Tình huống | Nên chọn | Lý do |
|---|---|---|
| Blog, landing page, web doanh nghiệp nhỏ đến vừa | VPS | Đủ tài nguyên, có root để tự kiểm soát, chi phí dễ tiếp cận |
| Tự host Docker, n8n, bot, VPN, môi trường dev/test | VPS | Toàn quyền cấu hình, dễ cài đặt và cô lập dịch vụ |
| Traffic biến động mạnh, chạy campaign theo mùa | Cloud Server | Co giãn tài nguyên theo tải, hấp thụ đỉnh truy cập |
| Database lớn, ERP, nhiều người dùng đồng thời | Cloud Server | Tài nguyên dồi dào và ổn định cho hệ thống nặng |
Nếu bạn đang dùng Shared Hosting và bắt đầu chạm giới hạn tài nguyên hoặc cần quyền can thiệp sâu vào server, đó là tín hiệu tự nhiên để chuyển lên VPS. Shared Hosting phù hợp giai đoạn nhỏ; khi nhu cầu kiểm soát và tài nguyên tăng, nâng cấp lên VPS rồi Cloud Server là bước đi hợp lý.
Câu hỏi thường gặp về lỗi 522 connection timed out
Lỗi 522 có phải do Cloudflare gây ra không?
Không. Cloudflare chỉ là bên báo lỗi vì nó không nhận được phản hồi kịp từ máy chủ gốc của bạn. Gốc rễ nằm ở origin: server treo, firewall chặn IP Cloudflare, tài nguyên quá tải hoặc SSL lệch chế độ. Sửa ở phía server mới dứt điểm.
Lỗi 522 và 524 khác nhau thế nào?
Lỗi 522 xảy ra ở bước thiết lập kết nối: Cloudflare không bắt được tay đầy đủ với origin. Lỗi 524 thì kết nối đã mở nhưng origin xử lý quá lâu, vượt ngưỡng thời gian chờ. Một bên là không vào được, một bên là vào rồi nhưng chờ mãi không xong.
Làm sao biết firewall đang chặn Cloudflare?
Truy cập thẳng IP origin mà web vẫn lên, nhưng qua tên miền có Cloudflare thì 522, đó là dấu hiệu firewall chặn. Kiểm tra log tường lửa hoặc dùng iptables -L -n và đối chiếu với dải IP Cloudflare. Mở cổng 80 và 443 cho các dải đó là xong.
Tạm tắt Cloudflare có hết lỗi 522 không?
Chuyển đám mây cam thành xám sẽ bỏ qua Cloudflare và trỏ thẳng về origin, nên trang lỗi 522 biến mất. Nhưng nếu nguyên nhân là server quá tải hoặc chết dịch vụ, web vẫn không lên. Đây chỉ là cách khoanh vùng, không phải cách sửa.
Nâng cấp VPS có giảm được lỗi 522 không?
Có, khi nguyên nhân là thiếu tài nguyên. Nếu 522 xuất hiện đúng lúc tải cao và server đã tối ưu hết mức, thêm CPU, RAM hoặc chuyển sang Cloud Server sẽ giúp xử lý kịp các request, tránh timeout. Nếu lỗi do firewall hay SSL thì nâng cấu hình không giải quyết được.
Sửa đúng gốc để web không sập lại
Khi web báo lỗi 522 connection timed out, hãy đi theo trình tự: xác nhận origin còn sống, mở firewall cho dải IP Cloudflare, gỡ điểm nghẽn tài nguyên, rồi đồng bộ SSL. Ba điều đáng nhớ là 522 luôn nằm ở phía server chứ không phải Cloudflare, mỗi bước cần kiểm tra lại bằng lệnh cụ thể, và nếu lỗi tái diễn vào giờ cao điểm thì gốc rễ là tài nguyên. Một hạ tầng đủ mạnh và đúng quyền kiểm soát giúp bạn xử lý sự cố trong phút chứ không phải trong giờ.
Chủ động kiểm soát máy chủ, chủ động xử lý sự cố
Cần một VPS có toàn quyền root, ổ NVMe nhanh và đội kỹ thuật trực 24/7 đứng sau?
Nội dung kỹ thuật trong bài chỉ mang tính tham khảo. Các lệnh, đường dẫn file và bước cấu hình có thể khác nhau tùy hệ điều hành, phiên bản phần mềm và môi trường thực tế của bạn. Trước khi áp dụng cho hệ thống production, hãy sao lưu dữ liệu, kiểm thử trên môi trường an toàn và đánh giá rủi ro phù hợp với tình huống của mình.
