Lỗi 520 Cloudflare (Error 520) là gì? Cách khắc phục

Advertisement
Lỗi 520 Cloudflare là gì?
Lỗi 520 là một trong những mã trạng thái riêng của Cloudflare. Trang lỗi ghi "Web server is returning an unknown error" (máy chủ web đang trả về một lỗi không xác định) kèm Error code 520, một Ray ID và ba ô: trình duyệt của bạn (Working), Cloudflare (Working) và máy chủ lưu trữ (Error).
Tài liệu của Cloudflare định nghĩa lỗi này là: "máy chủ gốc trả về cho Cloudflare một phản hồi trống, không xác định hoặc bất thường". Nói cách khác, Cloudflare đã kết nối được đến máy chủ thực của trang web (máy chủ gốc, hay origin), nhưng thứ nhận về không phải là một phản hồi HTTP hợp lệ để chuyển tiếp: không có mã trạng thái, phản hồi trống, kết nối bị reset, hoặc một thứ gì đó mà nó không phân tích được.
520 là mã lỗi chung chung. Cloudflare dùng những mã cụ thể hơn khi xác định được điều gì đã sai (kết nối bị từ chối, hết thời gian chờ, lỗi SSL), nên lỗi 520 có nghĩa là máy chủ gốc đã trả lời theo cách mà Cloudflare không phân loại được.
Lỗi 520 khác gì 521, 522, 523, 524, 525 và 526
Các mã 52x của Cloudflare đều mô tả một sự cố giữa Cloudflare và máy chủ gốc. Con số cho bạn biết cần tìm ở đâu:
| Mã | Nội dung trang lỗi | Điều đã xảy ra |
|---|---|---|
| 520 | Web server is returning an unknown error | Máy chủ gốc trả về phản hồi trống, không xác định hoặc bất thường |
| 521 | Web server is down | Máy chủ gốc từ chối kết nối |
| 522 | Connection timed out | Cloudflare không hoàn tất được kết nối đến máy chủ gốc |
| 523 | Origin is unreachable | Không có đường đi đến máy chủ gốc (kiểm tra IP máy chủ gốc trong DNS) |
| 524 | A timeout occurred | Đã kết nối, nhưng máy chủ gốc không trả lời kịp thời |
| 525 | SSL handshake failed | Quá trình bắt tay HTTPS với máy chủ gốc thất bại |
| 526 | Invalid SSL certificate | Chứng chỉ của máy chủ gốc không hợp lệ cho chế độ Full (strict) |
Nếu trang hiển thị lỗi 502 hoặc 504 thông thường, hãy xem 502 Bad Gateway và 504 Gateway Timeout. Với lỗi 521 và 522, hãy kiểm tra từ bên ngoài xem cổng 443 hoặc 80 của máy chủ gốc có chấp nhận kết nối không bằng công cụ Kiểm Tra Cổng. Với lỗi 525 và 526, công cụ Kiểm Tra Chứng Chỉ SSL hiển thị chứng chỉ của máy chủ gốc, còn bài ERR_SSL_VERSION_OR_CIPHER_MISMATCH đề cập đến các vấn đề về phiên bản TLS và bộ mã hóa (cipher).
Advertisement
Nguyên nhân gây ra lỗi 520
Cloudflare liệt kê các nguyên nhân sau trong tài liệu khắc phục sự cố của mình:
Máy chủ gốc bị crash hoặc cấu hình sai, ví dụ một tiến trình PHP hoặc Node chết giữa chừng khi đang xử lý yêu cầu.
Tường lửa hoặc plugin bảo mật chặn IP của Cloudflare tại máy chủ gốc, nên kết nối bị cắt thay vì được trả lời.
Header phản hồi vượt quá 128 KB, thường do có quá nhiều cookie hoặc cookie quá lớn.
Phản hồi trống hoặc sai định dạng, không có mã trạng thái HTTP hay nội dung.
Thiếu header phản hồi, hoặc máy chủ gốc không trả về phản hồi lỗi HTTP đúng chuẩn.
Cấu hình HTTP/2 không chính xác tại máy chủ gốc khi tính năng HTTP/2 to Origin đang bật.
Authenticated Origin Pulls được bật trong Cloudflare trong khi máy chủ gốc chưa được thiết lập cho tính năng này.
Nếu bạn là khách truy cập
Bạn không thể sửa máy chủ của trang web, nhưng có hai việc đáng thử. Tải lại trang sau một phút, vì lỗi 520 do crash hoặc khởi động lại có thể tự hết. Và xóa cookie của trang web: khi nguyên nhân là header quá lớn do cookie tạo ra, việc xóa cookie của trang đó (biểu tượng bên trái thanh địa chỉ → Cookie và dữ liệu trang web) có thể khắc phục lỗi cho bạn.
Nếu lỗi vẫn tiếp diễn, hãy báo cho chủ trang web và gửi kèm Ray ID ở cuối trang lỗi, giúp họ tìm chính xác yêu cầu của bạn trong Cloudflare.
Advertisement
Cách 1: Đọc log lỗi của máy chủ gốc
Khuyến nghị đầu tiên của Cloudflare là xem log của máy chủ gốc tại thời điểm xảy ra lỗi. Các sự cố crash, tiến trình bị kill do hết bộ nhớ và kết nối bị reset đều xuất hiện ở đó:
sudo tail -n 50 /var/log/nginx/error.log # or /var/log/apache2/error.log
journalctl -u your-app --since "15 min ago" # app service logs
pm2 logs --lines 50 # Node apps under PM2
dmesg -T | grep -i "killed process" # out-of-memory killsCách 2: Kiểm tra máy chủ gốc mà không qua Cloudflare
Yêu cầu trang trực tiếp từ máy chủ gốc, bỏ qua Cloudflare, và xem phản hồi thô. Với curl, bạn có thể trỏ tên máy chủ đến IP của máy chủ gốc cho riêng một yêu cầu:
# Thay 203.0.113.10 bằng IP của máy chủ gốc của bạn
curl -sv --resolve example.com:443:203.0.113.10 https://example.com/broken-page -o /dev/null
# Cần thấy: dòng trạng thái "HTTP/1.1 200" (hoặc HTTP/2 200) bình thường cùng các header.
# "Empty reply from server" hoặc "Connection reset by peer" ở đây nghĩa là đã tái hiện được lỗi 520.Cloudflare cũng gợi ý một giải pháp tạm thời: đặt bản ghi DNS thành DNS only (đám mây xám) hoặc tạm dừng Cloudflare, để khách truy cập đến thẳng máy chủ gốc trong lúc bạn điều tra. Hãy nhớ rằng cách này làm lộ IP máy chủ gốc của bạn. Công cụ Tra Cứu DNS của DNS Robot cho biết thế giới hiện đang thấy những IP nào cho tên miền của bạn, còn công cụ Kiểm Tra Header HTTP hiển thị các header server: cloudflare và cf-ray khi lưu lượng đi qua Cloudflare.
Advertisement
Cách 3: Cho phép dải IP của Cloudflare tại máy chủ gốc
Mọi lưu lượng của khách truy cập đều đến máy chủ gốc từ các dải IP của Cloudflare, nên tường lửa, jail của fail2ban hoặc plugin bảo mật giới hạn tốc độ hay chặn các IP "đáng ngờ" có thể vô tình chặn chính Cloudflare. Hãy cho phép các dải IP được công bố tại https://www.cloudflare.com/ips/ trong tường lửa và plugin bảo mật, đồng thời đảm bảo máy chủ web đọc IP thực của khách truy cập từ header CF-Connecting-IP để giới hạn tốc độ áp dụng cho khách truy cập chứ không phải cho Cloudflare.
Cách 4: Giữ header phản hồi dưới 128 KB
Cloudflare từ chối các phản hồi từ máy chủ gốc có header vượt quá 128 KB, và cookie là nguyên nhân thường gặp. Hãy kiểm tra xem một trang gửi bao nhiêu header Set-Cookie và chúng lớn đến mức nào. Xóa những cookie không còn cần thiết, giữ cookie phiên ở kích thước nhỏ, và tránh các ứng dụng hoặc plugin ghi dữ liệu lớn vào cookie.
Advertisement
Cách 5: Kiểm tra HTTP/2 to Origin và Authenticated Origin Pulls
HTTP/2 to Origin: nếu tính năng này được bật trong Cloudflare (trong phần cài đặt Speed) nhưng thiết lập HTTP/2 của máy chủ gốc bị lỗi, phản hồi có thể thất bại với lỗi 520. Cloudflare gợi ý kiểm tra cấu hình HTTP/2 của máy chủ gốc, hoặc tắt HTTP/2 to Origin để xác nhận.
Authenticated Origin Pulls: nếu tính năng này đang bật trong Cloudflare, máy chủ gốc phải được cấu hình để chấp nhận chứng chỉ client của Cloudflare. Nếu chưa, hãy tắt tính năng này hoặc hoàn tất thiết lập trên máy chủ gốc.
Cách 6: Những gì cần gửi cho bộ phận hỗ trợ của Cloudflare
Nếu máy chủ gốc có vẻ vẫn ổn mà lỗi 520 vẫn tiếp diễn, Cloudflare sẽ yêu cầu:
Các URL đầy đủ nơi lỗi xảy ra.
ID cf-ray trên trang lỗi.
Kết quả của
http://yourdomain.com/cdn-cgi/trace.Hai tệp HAR (DevTools → Network → xuất tệp), một tệp khi bật Cloudflare và một tệp khi tắt Cloudflare.
Xem một trang web có nằm sau Cloudflare không
Công cụ Kiểm Tra Header HTTP của DNS Robot hiển thị mã trạng thái, header server và ID cf-ray của bất kỳ URL nào, giúp bạn xác nhận lỗi 520 và biết Cloudflare có đứng trước trang web hay không.
Thử Kiểm Tra Header HTTPAdvertisement
Câu hỏi thường gặp
Đây là lỗi của Cloudflare, có nghĩa là máy chủ gốc của trang web đã trả về cho Cloudflare một phản hồi trống, không xác định hoặc bất thường. Trình duyệt của bạn và Cloudflare vẫn hoạt động; máy chủ gốc mới là bên không trả lời đúng cách.