Nguyên nhân và cách sửa lỗi 502 bad gateway trên Nginx

June 1st, 2014 by 46 Comments | Last Modified: October 2nd, 2014

Trong thời gian gần đây mình thấy trên nhiều diễn đàn và blog thảo luận về VPS và Server, có rất nhiều topic liên quan tới chủ để lỗi 502 bad gateway trên máy chủ có cài đặt Nginx. Mình cũng gặp lỗi này một lần khi test servertut. Mình không hiểu tại sao không phải lúc nào trên VPS cũng xuất hiện lỗi này. Tuy nhiên nguyên nhân của lỗi này không phải trên VPS nào cũng giống nhau. Vì vậy mình viết bài này tổng hợp các cách chữa lỗi 502 bad gateway.  Nếu bạn gặp lỗi này, bạn có thử một trong những cách dưới. Mình nghĩ sẽ khắc phục được.

Lưu ý: Với các VPS sử dụng HZserver, Lỗi 502 đã được khắc phục hoàn toàn.  Xem thêm về HZserver

Nguyên nhân và cách sửa lỗi 502 bad gateway trên Nginx

Nguyên nhân và cách sửa lỗi 502 bad gateway trên Nginx

Lỗi 502 bad gateway xuất hiện khi :
1. Nginx chạy như một proxy cache cho máy chủ Apache
2. Nginx chạy cùng với ứng dụng Php-FPM
3. Ngix chạy với dịch vụ khác và hoạt động với vai trò là gateway
4. Cấu hình không tốt buffering/timeout

Trước khi tìm hiểu kỹ về tất cả các trường hợp trên, ta sẽ tìm hiểu lỗi 502 bad gateway nghĩa là gì. Vâng, nó là một số 502 và lỗi này xảy ra tại gateway. Vậy gateway là gì? nó có thể là một dịch vụ/phần mềm đang hoạt động và đang nhận các request – yêu cầu từ Nginx web server.
Bây giờ ta sẽ giải thích nguyên nhân xuất hiện lỗi 502 bad gateway trong các trường hợp trên nhé !

1. Nginx chạy là một dich vụ proxy cho Apache.: Trong trường hợp này, gateway là apache. Khi bạn sử dụng Nginx làm proxy cho Apache, nếu Apache die hay nó không được cấu hình tốt, nó có thể là gây là lỗi 502. Vậy ta có thể sửa lỗi 502 bad gateway trong trường hợp này như thế nào? có thể bạn chỉ cần khởi động lại Apache web server là được, tuy nhiên bạn phải kiểm tra file logs để biết nguyên nhân chính xác gây ra lỗi này.
2. Nginx chạy cùng PHP-FPM: Cũng như trường hợp Apache , nguyên nhân có thể do php bị ngừng hoạt động hoặc nó bị quá tải khi xử lý các request. PHP-FPM hoạt động không chính xác và không thể xử lý tất cả các request từ Nginx, và lỗi 502 bad gateway xuất hiện. Và lần này, sửa lỗi bằng cách khởi động lại php-fpm và xem logs.
3. Nginx với các dịch vụ/ apps khác: Cố gắng khởi động lại các dịch vụ đó và kiểm tra log để tìm ra nguyên nhân lỗi.
4. Cấu hình không tốt buffering/timeout

Bạn thử một trong những cách sau:

1) tăng buffering/timeout trong http block:

2) Chắc chắn dịch vụ php-fpm đang listening đúng như ta config trong nginx.

Chỉnh www.conf và vhost.conf ( trong centos: /etc/php-fpm.d/www.conf và /etc/nginx/conf.d/vhost.conf) Bạn thử thay sang trường hợp còn lại nếu trường hợp kia bị lỗi sau đó khởi động lại php-fpm. Lưu ý giá trị này trong www.conf và vhost.conf phải giống nhau.

hoặc

3) tắt APC Cache nếu nó đang sử dụng. Có thể APC cache là nguyên nhân gây ra lỗi này.

 

Xem thêm:

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

46 Comments
  1. Posted by Xuan
    • Posted by Nguyễn Oánh
  2. Posted by Xuan
  3. Posted by Truong Thanh Tuan
  4. Posted by Minh Bao
  5. Posted by Quỳnh Nguyễn
    • Posted by Nguyễn Oánh
  6. Posted by Tinh
    • Posted by Nguyễn Oánh
  7. Posted by Dương
    • Posted by Nguyễn Oánh

Bình luận của bạn

Bạn vui lòng sử dụng tên thật hay nickname và không sử dụng từ khóa trong phần điền tên. Nếu vi phạm, mình xin phép không cho hiện comment trên site. Cảm ơn bạn.



:xauho: :roll: :oops: :nono: :mrgreen: :mofat: :macf: :data: :cry: :claps: :bye: :batfa: :ZZZM: :D ::tholoz: ::meney: ::kiss:: ::fulltime: ::cuoiroile:: ::chugun: ::chenhca: ::cave: ::bank: ::CRTTS: :-| :-D :-? 8)
KHUYẾN MẠI ĐẶC BIỆT ! VULTR Đang Tặng 52 USD Cho Tài Khoản Mới ! GET COUPON NOW
Hello. Add your message here.