Lỗi 502 Bad Gateway khiến cả website trắng trang, và cách xử lý phụ thuộc hoàn toàn vào việc máy chủ nào đang đứng ở vai trò “cổng trung gian” trong hệ thống của bạn.
502 Bad Gateway nghĩa là một máy chủ trung gian (Cloudflare, NGINX, LiteSpeed) gửi yêu cầu tiếp cho máy chủ phía sau nhưng nhận về phản hồi không hợp lệ hoặc không nhận được gì. Với WordPress, nguyên nhân hay gặp nhất là PHP bị treo, quá tải hoặc hết tiến trình do plugin, lưu lượng tăng đột ngột hay cấu hình máy chủ.
Lỗi 502 Bad Gateway là gì?
Theo đặc tả HTTP (RFC 9110), mã 502 cho biết máy chủ đang làm cổng hoặc proxy đã nhận một phản hồi không hợp lệ từ máy chủ phía sau khi xử lý yêu cầu. Nói cách khác, lỗi không nằm ở trình duyệt của khách mà ở đoạn giữa hai máy chủ.
Một website WordPress thường có hai hoặc ba tầng như vậy:
- Cloudflare hoặc CDN nhận yêu cầu từ khách, chuyển về máy chủ gốc (hosting).
- Web server (NGINX, LiteSpeed, Apache) nhận yêu cầu, chuyển phần PHP cho trình xử lý PHP.
- Trình xử lý PHP (PHP-FPM với NGINX, lsphp với LiteSpeed) chạy WordPress, truy vấn cơ sở dữ liệu, trả HTML.
Tầng nào nhận phản hồi lỗi từ tầng sau thì tầng đó hiển thị 502. Vì vậy bước đầu tiên luôn là xác định trang lỗi do tầng nào trả về.
502 khác 500, 503, 504 thế nào?
| Mã lỗi | Ý nghĩa | Hay gặp trên WordPress khi |
|---|---|---|
| 500 Internal Server Error | Máy chủ gặp lỗi khi tự xử lý | Lỗi PHP nghiêm trọng, .htaccess sai, plugin lỗi cú pháp |
| 502 Bad Gateway | Cổng trung gian nhận phản hồi hỏng hoặc bị ngắt từ máy chủ sau | PHP-FPM hoặc lsphp chết, bị ngắt, header trả về quá lớn; máy chủ gốc lỗi khi đứng sau Cloudflare |
| 503 Service Unavailable | Máy chủ tạm thời không phục vụ | Hết tiến trình PHP, đang bảo trì, quá giới hạn tài nguyên |
| 504 Gateway Timeout | Cổng trung gian chờ quá lâu không có phản hồi | Truy vấn chậm, nhập dữ liệu lớn, sao lưu chạy lâu, API bên ngoài treo |
| 508 Resource Limit Is Reached | Tài khoản hosting chạm giới hạn tài nguyên (thường trên CloudLinux) | Quá số tiến trình đồng thời trên hosting dùng chung |
Trên hosting LiteSpeed dùng chung, cùng một nguyên nhân (lsphp bị quá tải) có thể hiện ra 502, 503 hoặc 508 tùy cấu hình. Đừng chỉ dựa vào con số; hãy xem nhật ký lỗi.
Bạn là khách truy cập: làm gì khi gặp 502?
- Đợi khoảng một phút rồi tải lại trang. Nhiều lỗi 502 do máy chủ khởi động lại hoặc quá tải ngắn.
- Thử mạng khác (4G thay vì Wi-Fi) hoặc trình duyệt ẩn danh để loại trừ proxy, VPN, tiện ích chặn quảng cáo.
- Kiểm tra trang trạng thái của dịch vụ nếu website lớn, ví dụ cloudflarestatus.com khi nhiều website cùng lỗi.
Xóa bộ nhớ đệm trình duyệt hiếm khi sửa được 502, vì lỗi nằm ở máy chủ. Nếu bạn là chủ website, các bước dưới đây mới là phần cần làm.
Chủ website: quy trình chẩn đoán theo thứ tự
- Xác định phạm vi. Toàn bộ website hay chỉ một trang, chỉ trang quản trị, chỉ khi bấm một nút? Lỗi ở một thao tác cụ thể thường do một plugin hoặc một truy vấn chậm.
- Nhớ lại thay đổi gần nhất. Vừa cập nhật plugin, theme, đổi phiên bản PHP, bật tính năng Cloudflare mới? Hoàn tác thay đổi đó trước.
- Xem nhật ký lỗi. Trong cPanel, DirectAdmin có mục Errors hoặc Error Log; trên VPS xem nhật ký của NGINX, LiteSpeed và PHP. Một dòng nhật ký thường nói thẳng nguyên nhân.
- Xem tài nguyên. Biểu đồ CPU, RAM, tiến trình (Resource Usage) trong bảng điều khiển hosting cho biết website có chạm giới hạn đúng lúc lỗi không.
- Liên hệ nhà cung cấp với thông tin cụ thể: thời điểm, URL lỗi, nội dung nhật ký. Báo “web bị 502” chung chung thường nhận câu trả lời chung chung.
Sửa lỗi 502 trên WordPress
- Tắt plugin không cần vào trang quản trị: đổi tên thư mục wp-content/plugins (qua File Manager hoặc FTP), tải lại website. Nếu hết lỗi, đổi tên lại rồi tắt từng plugin để tìm thủ phạm. Hay gặp ở plugin sao lưu, plugin bảo mật quét file, plugin tối ưu ảnh chạy hàng loạt.
- Chuyển sang theme mặc định bằng cách đổi tên thư mục theme đang dùng, nếu tắt plugin không giải quyết được.
- Kiểm tra phiên bản PHP: plugin cũ chạy trên PHP mới (hoặc ngược lại) có thể làm tiến trình PHP chết.
- Tìm tác vụ nặng: WP-Cron chạy sao lưu, đồng bộ sản phẩm, gửi email hàng loạt vào giờ cao điểm. Dời lịch hoặc chuyển sang cron của máy chủ.
- Kiểm tra lưu lượng bất thường: bot quét wp-login.php, xmlrpc.php có thể chiếm hết tiến trình PHP. Chặn ở tường lửa hoặc Cloudflare.
Sau khi sửa, đọc thêm bài plugin là gì để biết cách chọn plugin ít gây sự cố, và bài cập nhật WordPress an toàn để tránh lỗi lặp lại sau mỗi lần cập nhật.
Sửa lỗi 502 trên NGINX
Với NGINX kết hợp PHP-FPM, nhật ký lỗi của NGINX thường chỉ ra một trong các trường hợp:
- connect() failed (111: Connection refused) while connecting to upstream hoặc lỗi không tìm thấy socket: PHP-FPM đã dừng hoặc NGINX trỏ sai địa chỉ socket. Kiểm tra trạng thái dịch vụ PHP-FPM và đường dẫn trong cấu hình fastcgi_pass.
- upstream prematurely closed connection: tiến trình PHP bị ngắt giữa chừng, thường do hết bộ nhớ, script chạy quá max_execution_time hoặc tiến trình bị hệ điều hành dừng. Xem nhật ký PHP-FPM cùng thời điểm.
- upstream sent too big header: phản hồi có header quá lớn (cookie, header do plugin thêm). Tăng fastcgi_buffer_size và fastcgi_buffers hoặc tìm plugin tạo header lớn.
- Hết tiến trình PHP-FPM (nhật ký báo đã đạt pm.max_children): tăng số tiến trình nếu RAM còn dư, hoặc giảm tải bằng cache trang.
Mỗi lần sửa cấu hình, kiểm tra cú pháp bằng nginx -t trước khi tải lại dịch vụ để không làm website ngừng hẳn.
Sửa lỗi 502 trên LiteSpeed
LiteSpeed chạy PHP qua lsphp. Lỗi 502 hoặc 503 xuất hiện khi lsphp bị treo, chạm giới hạn số tiến trình, phiên bản PHP không khớp với ứng dụng hoặc quá thời gian chờ. Trên hosting dùng chung, bạn không chỉnh được cấu hình máy chủ, nên việc làm được là:
- Xem Resource Usage để biết có chạm giới hạn tiến trình (EP, NPROC) không.
- Bật LiteSpeed Cache để phần lớn lượt truy cập được trả từ bộ nhớ đệm, không gọi PHP.
- Gửi nhà cung cấp thời điểm lỗi và nhờ họ xem nhật ký lsphp, vì nhật ký này thường không hiển thị cho tài khoản hosting.
Sửa lỗi 502 khi dùng Cloudflare
Tài liệu của Cloudflare phân biệt hai trường hợp:
- Trang 502 có thương hiệu Cloudflare: máy chủ gốc của bạn trả về 502 hoặc 504. Lỗi nằm ở hosting, xử lý theo các mục ở trên.
- Trang trắng không có thương hiệu Cloudflare: lỗi phát sinh tại Cloudflare. Kiểm tra cloudflarestatus.com; nếu không có sự cố chung, gửi Cloudflare thời điểm, URL lỗi và kết quả trang tenmien/cdn-cgi/trace.
Các lỗi 520 đến 526 là mã riêng của Cloudflare, không phải 502: 521 là máy chủ gốc từ chối kết nối, 522 là quá thời gian kết nối, 525 và 526 liên quan chứng chỉ SSL trên máy chủ gốc. Một nguyên nhân hay bị bỏ sót là tường lửa hoặc plugin bảo mật trên hosting chặn dải IP của Cloudflare; khi đó Cloudflare không lấy được nội dung từ máy chủ gốc.
Phòng lỗi 502 tái diễn
- Bật cache trang để giảm số yêu cầu phải chạy PHP.
- Cập nhật plugin theo đợt, có sao lưu, kiểm tra sau mỗi đợt thay vì bật cập nhật tự động cho mọi thứ.
- Theo dõi uptime với cảnh báo qua email hoặc Zalo để biết lỗi trước khi khách báo.
- Theo dõi tài nguyên hosting hằng tháng; thường xuyên chạm giới hạn là dấu hiệu cần nâng gói hoặc tối ưu.
- Chặn bot xấu và giới hạn truy cập trang đăng nhập.
Nếu website thường xuyên quá tải dù đã bật cache, có thể hosting không còn phù hợp; xem tiêu chí chọn hosting và khi nào cần VPS trong trang tên miền và hosting. Không có người kỹ thuật theo dõi nhật ký và cập nhật, bạn có thể giao phần này cho gói bảo trì WordPress.
Câu hỏi thường gặp
Lỗi 502 Bad Gateway là do máy tính của tôi hay do website?
Gần như luôn do phía máy chủ của website. Nếu chỉ bạn gặp lỗi còn người khác vào bình thường, hãy thử mạng khác hoặc tắt VPN, proxy, vì chúng cũng là một tầng trung gian.
Lỗi 502 có ảnh hưởng thứ hạng Google không?
Lỗi ngắn vài phút thường không ảnh hưởng. Nếu Googlebot gặp lỗi 5xx kéo dài, Google giảm tốc độ thu thập dữ liệu và có thể loại các URL lỗi lâu ngày khỏi chỉ mục. Theo dõi báo cáo Thống kê thu thập dữ liệu trong Search Console sau sự cố.
Vì sao website chỉ bị 502 ở trang quản trị WordPress?
Trang quản trị không được cache và thường chạy nhiều tác vụ nặng hơn trang ngoài: kiểm tra cập nhật, thống kê của plugin, trình dựng trang. Một plugin chạy chậm trong trang quản trị có thể làm tiến trình PHP bị ngắt. Tắt lần lượt plugin để tìm nguyên nhân.
Tăng memory_limit có sửa được lỗi 502 không?
Chỉ khi nhật ký cho thấy PHP hết bộ nhớ. Tăng giới hạn mà không tìm ra plugin hoặc tác vụ tiêu tốn bộ nhớ thường chỉ dời lỗi sang lúc khác. Trên hosting dùng chung, giới hạn thật còn phụ thuộc gói tài nguyên.
Website lỗi 502 khi chạy quảng cáo thì làm sao?
Đó là dấu hiệu máy chủ không chịu được lượng truy cập đồng thời. Bật cache trang cho trang đích, giảm plugin chạy trên trang đó, và kiểm tra giới hạn tiến trình của gói hosting trước khi tăng ngân sách quảng cáo.
Cần người làm giúp phần này?
Mô tả ngắn nhu cầu hoặc gửi link website. Chúng tôi phản hồi bằng đánh giá cụ thể trước khi báo giá.
