502 bad gateway và các cách sửa

502 bad gateway là gì?

502 Bad Gateway là một lỗi mã trạng thái HTTP (HTTP Status Code). 502 Bad Gateway xuất hiện do một gateway (server) trên internet nhận phản hồi “không hợp lệ” (invalid response) từ server khác. Do đó bạn không được truy cập vào trang web.

Mỗi khi bạn truy cập một trang web, trình duyệt của bạn sẽ gửi một yêu cầu đến máy chủ web. Máy chủ web nhận và xử lý yêu cầu, sau đó gửi lại các tài nguyên được yêu cầu cùng với tiêu đề HTTP và mã trạng thái HTTP. Thông thường, mã trạng thái HTTP sẽ không được nhìn thấy trừ khi có sự cố. Về cơ bản, đó là cách máy chủ thông báo cho bạn biết rằng đã xảy ra sự cố, cùng với mã về cách chẩn đoán sự cố.

Có nhiều loại mã lỗi trạng thái 500 khác nhau (500, 501, 502, 503, 504, 520, v.v.) mà tất cả đều có ý nghĩa hơi khác nhau. Những điều này cho thấy rằng yêu cầu đã được chấp nhận, nhưng máy chủ đã ngăn chặn việc thực hiện yêu cầu. Trong trường hợp này, lỗi 502 bad gateway đặc biệt có nghĩa là một máy chủ, trong khi hoạt động như một cổng hoặc proxy, đã nhận được phản hồi không hợp lệ từ máy chủ gửi đến.

Nguyên nhân gây ra lỗi 502 Bad Gateway

Có rất nhiều nguyên nhân dẫn đến trang web không truy cập được do lỗi 502 bad gateway. Những nguyên nhân chủ yếu phải kể đến:

  • Server quá tải: Khi server quá tải, bộ nhớ cạn kiệt do vô số những lượng khách truy cập trên trang web hoặc do tấn công DDOS, nó có thể dừng hoạt động.
  • Tường lửa chặn: Tường lửa có thể chặn liên lạc giữa các máy chủ. Một số hệ thống bảo vệ ddos thường có thể phản ứng thái quá, chặn các yêu cầu từ hệ thống phân phối nội dung.
  • Lập trình bị lỗi: Nguyên nhân dẫn đến lỗi 502 bad gateway còn có thể do lập trình bị lỗi. Đôi khi lỗi trong code của trang web sẽ khiến các yêu cầu không thể được trả lời một cách chính xác, dẫn đến lỗi này hiển thị.
  • Lỗi mạng: Đôi khi có thể các sự cố về DNS, sự cố định tuyến và các sự cố liên quan đến ISP cũng có thể là nguyên nhân dẫn đến lỗi 502 bad gateway.
  • Hết thời gian chờ (Connection timeout): Lỗi 502 bad gateway có thể xảy ra khi web server mất quá nhiều thời gian để hoàn thành.

Ngoài ra, lỗi này còn xuất hiện khi sử dụng nginx làm Reverse proxy cho Apache, nginx chạy cùng php-fpm, nginx chạy cùng với dịch vụ khác với vai trò là gateway hoặc do cấu hình buffering/ timeout chưa tốt.

502 bad gateway nginx

502 bad gateway nginx fix được trình bày tại đây.

Sửa lỗi 502 Bad Gateway

Có nhiều cách khắc phục lỗi 502 bad gateway, nhưng để nhanh chóng và dễ dàng nhất, bạn nên áp dụng các cách cơ bản dưới đây:

Kiểm tra lại Host

Lý do chính mà chúng tôi thường thấy lỗi 502 bad gateway là do sự cố với web server. Đôi khi một query, script, hoặc request sẽ mất quá nhiều thời gian. Và do đó, nó bị máy chủ cancel hoặc killed. Rất nhiều máy chủ, đặc biệt là máy chủ chia sẻ (shared host) triển khai cái mà họ gọi là “kill script”. Về cơ bản, điều này làm là nó sẽ chấm dứt một yêu cầu sau một khoảng thời gian nhất định, để nó không làm down trang web xuống hoặc ảnh hưởng đến những người dùng khác.

Một lý do khác khiến bạn có thể thấy lỗi 502 có thể là do máy chủ không thể truy cập được, vì nó bị lỗi hoặc không có kết nối. Trong trường hợp này, bạn nên kiểm tra trang trạng thái của máy chủ lưu trữ WordPress của mình hoặc mở một phiếu hỗ trợ.

Xóa cookies, cache trình duyệt

Quá trình chúng ta sử dụng trình duyệt sẽ có rất nhiều file được lưu lại với mục đích để sử dụng cho các trang web khác nhau. Các file đã lỗi thời hoặc các file bị lỗi được lưu trữ trên trình duyệt của bạn khiến chúng bị xung đột có thể là nguyên nhân gây ra lỗi 502. Trong trường hợp này chỉ cần xóa bỏ các file bộ nhớ cache và thử mở lại trang bạn muốn truy cập là xong.

Vấn đề DNS

Lỗi 502 gateway cũng có thể do sự cố DNS, chẳng hạn như miền không phân giải thành IP chính xác. Nếu bạn vừa mới di chuyển trang web của mình sang một máy chủ mới, thì điều quan trọng là phải đợi mọi thứ cập nhật hoàn toàn, có thể mất đến 24 giờ trong một số trường hợp. Điều này phụ thuộc vào giá trị TTL của các bản ghi DNS của bạn.

Bạn cũng có thể thử xóa bộ nhớ cache DNS local của mình. Điều này tương tự như xóa bộ nhớ cache của trình duyệt của bạn.

Trong Windows chỉ cần mở Command Prompt và nhập như sau:

ipconfig /flushdns

Bạn sẽ thấy thông báo “Successfully flushed the DNS resolver Cache” nếu nó hoạt động.

Đối với người dùng macOS, bạn có thể nhập thông tin sau vào terminal:

dscacheutil -flushcache

Và cuối cùng, bạn có thể tạm thời thay đổi máy chủ DNS của mình. Theo mặc định, máy chủ DNS được ISP của bạn chỉ định tự động. Nhưng bạn có thể thử tạm thời thay đổi chúng sang một public DNS, chẳng hạn như Google hay Cloudflare.

Tạm thời vô hiệu hóa tường lửa hoặc CDN

Lỗi 502 bad gateway xuất hiện có thể là do mạng phân phối nội dung CDN hoặc tường lửa gặp vấn đề. Bạn có thể khắc phục lỗi này bằng cách tạm thời vô hiệu hóa tường lửa hoặc CDN. Nếu bạn đang dùng CDN của bên thứ ba, đây là cách đơn giản để khắc phục. Có thể là do nhà cung cấp muốn giảm thiểu DDOS hay các dịch vụ Proxy như cloudflare.

Thường có 2 loại lỗi 502 bad gateway cloudflare là 502 bad gateway cloudflare loại 1 và 502 bad gateway cloudflare loại 2. Và để khắc phục lỗi 502 bad gateway cloudflare loại 1, bạn cần kiểm tra lại trạng thái của cloudflare và xác định chính xác lỗi. Còn với lỗi 502 bad gateway cloudflare loại 2, bạn hãy kiểm tra lại trạng thái của máy chủ hay gửi ticket đến nhà cung cấp.

Hủy kích hoạt tất cả Plugin nếu bạn đang dùng WordPress

Nếu lỗi 502 bad gateway xảy ra là do cấu hình plugin không đúng hoặc bị xung đột. Bạn nên thực hiện lệnh hủy tất cả các plugin. Kiểm tra xem sự cố có được khắc phục hay không. Nếu được khắc phục, bạn bắt đầu kích hoạt từng plugin.

Sau mỗi lần kích hoạt từng plugin một bạn nên nhớ là reload trang web nhé. Nếu thấy lỗi 502 bad gateway thì nghĩa là plugin đang hoạt động gây lỗi. Lúc này, bạn tạm tắt các plugin đó hoặc liên hệ ngay với các nhà phát triển plugin để được hỗ trợ tốt nhất.

Để có thể thấy thông báo lỗi từ plugin, bạn nên bật debug log của WordPress trong wp-config.php :

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
  Top 7 plugin hay ho cho blog sử dụng wordpress

Khởi động lại trình duyệt của bạn

Cách này rất đơn giản có tính hiệu quả rất cao. Đóng tất cả các cửa sổ trên trình duyệt của bạn, sau đó mở lại trình duyệt một lần nữa, và thử mở trang web mà bạn muốn truy cập một lần nữa.

Nó sẽ xóa đi các dữ liệu tạm thời trên trình duyệt của bạn. Giúp khôi phục và xử lý được lỗi 502 một cách nhanh chóng.

Load lại URL một lần nữa

Khắc phục lỗi 502 bad gateway bằng cách reload URL một lần nữa là cách đơn giản nhất. Bạn chỉ cần load lại website một lần nữa, kiểm tra bằng cách nhấn phím F5 hoặc nhấn Refresh/ Reload của trình duyệt. Cách này nhằm vào chủ yếu xử lý lỗi 502 do máy chủ bị tạm ngưng để nâng cấp hoặc connection time out.

Sử dụng trình duyệt thay thế khác

Sử dụng một trình duyệt khác để thay thế cũng là cách rất hiệu quả để khắc phục lỗi 502 bad gateway. Bạ có thể sử dụng nhiều trình duyệt khác như: Chrome, Cốc Cốc, Firefox, Edge, Safari…Bạn có thể xóa trình duyệt hiện tại đó đi và tiến hành cài đặt lại từ đầu để sử dụng ổn định.

Khởi động lại máy tính của bạn

Việc khởi động lại máy tính thì máy sẽ tự động khởi động lại kết nối mạng. Cách này giúp khắc phục lỗi tạm thời do máy tính của bạn kết nối đến internet gặp gián đoạn nên gây ra lỗi 502 bad gateway.

Khởi động lại hệ thống mạng

Trong một số trường hợp thường xảy ra các sự cố trên modem, router, switches hay các thiết bị cung cấp chia sẻ mạng khác cũng là nguyên nhân gây ra lỗi 502 bad gateway. Bạn chỉ cần khởi động lại toàn bộ thiết bị mạng như modem, router, switches…

Những kiểu thông báo lỗi 502 bad gateway phổ biến

Do các trình duyệt, máy chủ web và hệ điều hành khác nhau, lỗi 502 bad gateway có thể tự xuất hiện theo một số cách khác nhau. Nhưng chúng đều có cùng một ý nghĩa. Dưới đây chỉ là một vài trong số nhiều biến thể khác nhau mà bạn có thể thấy trên web:

  • “502 Bad Gateway”
  • “Error 502”
  • “HTTP Error 502 – Bad Gateway”
  • “502 Service Temporarily Overloaded”
  • “502 Proxy Error”
  • A blank white screen
  • “502 Server Error: The server encountered a temporary error and could not complete your request”
  • “HTTP 502”
  • Temporary Error (502)
  • 502. That’s an error
  • 502 bad gateway Cloudflare
  • Bad Gateway: The proxy server received an invalid response from an upstream server

Một biến thể khác mà bạn có thể thấy là “502 server error”.

Và đây là một biến thể khác.

502 – Web server received an invalid response while acting as a gateway or proxy server. There is a problem with the page you are looking for, and it cannot be displayed. When the Web server (while acting as a gateway or proxy) contacted the upstream content server, it received an invalid response from the content server.

 

Các dịch vụ khác như Twitter thậm chí có thể hiển thị một thông báo hoàn toàn khác về lỗi 502 Bad Gateway, chẳng hạn như “Twitter đang vượt quá dung lượng”. Điều này chắc chắn trông thân thiện hơn một chút.

Các dịch vụ của Google, chẳng hạn như Google Search hoặc Gmail xảy ra lỗi 502 Bad Gateway thường hiển thị Server Error (lỗi máy chủ) hoặc trong một số trường hợp chỉ đơn giản là hiển thị 502 trên màn hình. Và đây là ảnh chụp nhanh về cách Google hiển thị nó.

Xem ngay tin tuyển dụng lập trình viên mới nhất trên TopDev