Xử lý lỗi “502 Bad Gateway” trên Nginx

29-May-2018

Bài viết này sẽ giúp bạn xử lý lỗi “502 Bad Gateway” trên Nginx.

Bạn đã bao giờ gặp thông báo như thế này trên website của mình? Dưới đây là những lý do phổ biến thường gặp nhất khiến cho website bạn gặp thông báo lỗi như trên và cách khắc phục.

-Nginxđang làm proxy cho Apache trong mô hình Reverse Proxy:

Với trường hợp này, gateway đang là Apache và trong các tình huống apache không phản hồi do apache die, apache không thể giao tiếp với nginx…. Trường hợp này khi người dùng thực hiện truy cập vào website, nginx sẽ trả ngay lỗi 502. Để xử lý, cần kiểm tra và đảm bảo apache có thể xử lý các request đồng thời việc giao tiếp giữa apache và nginx vẫn có thể thực hiện được. Cách tốt nhất lúc này là thực hiện restart apache và kiểm tra tiếp tục thêm trên các file log.

-Nginx hoạt động cùng php-fpm, tương tự như mô hình trên.

Trường hợp này tương tự như trên, cách xử lý vẫn là kiểm tra và đảm bảo php-fpm vẫn xử lý được các request, giao tiếp giữa nginx và php-fpm vẫn bình thường. Cách tốt nhất lúc này là thực hiện restart php-fpm và kiểm tra tiếp tục thêm trên các file log.

-Nginx hoạt động cùng các dịch vụ khác với vai trò là Gateway.

Vẫn như trên, thử kiểm tra bằng cách restart lại nginx và kiểm tra thêm trên các file log.

-Lỗi cấu hình liên quan đến buffering và timeout trên nginx config.

Kiểm tra lại cấu hình trên nginx, thử tăng toàn bộ các giá trị buffering và timeout sau đó restart lại nginx.

Nhìn chung về lỗi 502, phần lớn các tình huống xảy ra đều trên mô hình reverse proxy với apache ở backend hoặc php-fpm. Các trường hợp này đa phần do apache hoặc php-fpm die, không thể tự khởi động lại, việc cần làm lúc này là cần kiểm tra và đảm bảo start lại các dịch vụ này.

Chúc bạn thành công!