HƯỚNG DẪN Khắc phục lỗi 502 Bad Gateway

Thảo luận trong 'KIẾN THỨC VPS/SERVER' bắt đầu bởi quyet1990, 29/11/16.

  1. quyet1990

    quyet1990 New Member

    Tham gia ngày:
    22/10/16
    Bài viết:
    220
    Đã được thích:
    0
    Nhiều lần chúng tôi duyệt web và tìm thấy một lỗi 502 Bad Gateway tại Nginx. Có một vài lý do tại sao bạn sẽ tìm thấy thông điệp này trong nhật ký máy chủ web của bạn, và ở đây chúng tôi sẽ dạy bạn làm thế nào để sửa chữa nó.

    Làm thế nào bạn có thể thấy lỗi 502 Bad Gateway
    Các trang web khác nhau có thể tùy chỉnh các thông báo lỗi 502 Bad Gateway . Dưới đây là các thông báo lỗi 502 Bad Gateway phổ biến nhất:
    • “502 Bad Gateway”
    • “502 Bad Gateway NGINX”
    • “502 Service Temporarily Overloaded”
    • “502 Proxy Error”
    • “Error 502”
    • “HTTP Error 502 – Bad Gateway”
    • “HTTP 502”
    Bạn sẽ tìm thấy lỗi 502 Bad Gateway trong các trường hợp sau:
    • Nginx chạy như proxy cho máy chủ web Apache.
    • Nginx chạy với daemon PHP-FPM.
    • Nginx chạy với các dịch vụ khác như là gateway.
    • Cấu hình thời gian chờ hoặc bộ nhớ đệm.
    Trước khi đi sâu vào tất cả các trường hợp trên, bạn phải hiểu thông báo lỗi 502 Bad Gateway là gì. Lỗi này là lỗi HTTP Status và nó xảy ra ở gateway. Vậy gateway là gì?

    Nói cách đơn giản, một gateway, giống như một điểm truy cập, một cây cầu giao tiếp một dịch vụ với một dịch vụ khác , trong trường hợp này gateway có thể là một dịch vụ/ứng dụng mà đang làm việc và nhận các yêu cầu từ máy chủ web Nginx.
    Bây giờ, chúng ta hãy cùng khám phá mỗi một trong những trường hợp trên để hiểu về lỗi 502 Bad Gateway.
    Nginx as Proxy for Apache: trong trường hợp này, gateway là Apache. Khi bạn sử dụng Nginx như proxy cho Apache, nếu apache chết hoặc nó không được cấu hình, nó có thể gây ra lỗi 502 Bad Gateway. Làm thế nào để khắc phục nó? Hầu hết các lần, khởi động lại máy chủ web Apache sẽ thoát khỏi lỗi này, nhưng bạn phải kiểm tra các tập tin log để biết chính xác điều gì đã gây ra lỗi này.

    Nginx with PHP-FPM: tương tự như ví dụ Apache, hãy tưởng tượng daemon php của bạn ngừng làm việc, hoặc quá tải bởi những yêu cầu, nó sẽ không hoạt động đúng và tất cả các yêu cầu php từ nginx sẽ không được xử lý, vì vậy, một lỗi 502 Bad Gateway sẽ xuất hiện. Làm thế nào để khắc phục nó? Khởi động lại daemon php-fpm và kiểm tra các tập tin log.

    Nginx with other services/apps: cố gắng khởi động lại dịch vụ đó và khám phá các bản log để tìm ra lý do tại sao gây ra lỗi 502.

    Các giải pháp nhanh khác cho lỗi 502 Bad Gateway:
    1) Tăng bộ nhớ đệm và timeout bên trong khối http:
    Mã:
    http {
    ...
    fastcgi_buffers 8 16k;
    fastcgi_buffer_size 32k;
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    ...
    }
    
    2) Đảm bảo dịch vụ php-fpm bạn đang lắng nghe theo những gì bạn đã cấu hình trong nginx, nó có thể là hai tùy chọn này:
    Chỉnh sửa tập tin www.conf (trong CentOS nó nằm ở /etc/php-fpm.d/www.conf và thử với một trong hai tùy chọn này:
    Mã:
     listen = /var/run/php5-fpm.sock 
    hoặc
    Mã:
     listen = 127.0.0.1:9000 
    Sau đó, chỉ cần khởi động lại dịch vụ php-fpm.

    3) Vô hiệu APC cache nếu đang sử dụng, thay thế bằng XCache, APC có thể gây ra nhiều vấn đề đối với hệ thống.
    4) Gần đây tôi đã tìm thấy một nguyên nhân của lỗi 502 Bad Gateway, kiểm tra xem nó ra ở đây.
     
    #1 quyet1990, 29/11/16
    Sửa lần cuối: 30/11/16

Chia sẻ trang này

Đang tải...