Dạo gần đây có nhiều bạn thông báo hay bị lỗi 502 Bad Gateway khi sử dụng Nginx, mình đã tìm hiểu qua thông tin và có được một số giải pháp để xử lý vấn đề này như sau.

– Mở file cấu hình Nginx:

nano /etc/nginx/nginx.conf

– Thêm đoạn cấu hình sau vào trong block http { }

http {
    ...
    fastcgi_buffers         8 16k;
    fastcgi_buffer_size     32k;
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout    300;
    fastcgi_read_timeout    300;

    include /etc/nginx/conf.d/*.conf;
}

Nếu muốn tìm hiểu chuyên sâu hơn về các cấu hình trên, các bạn có về vào trang docs của Nginx với các thông số của module ngx_http_fastcgi_module rất cụ thể.

Khởi động lại nginx, php-fpm:

service nginx restart
service php-fpm restart

Nếu có kinh nghiệm nào xử lý lỗi 502 Bad Gateway, các bạn hãy chia sẻ thêm cho mọi người biết bằng cách để lại comment nhé.

85 Comments

    1. Luân Trần Admin

      Thế thì có khả năng do site lúc cao điểm nhiều người online quá nên ko chịu tải được, lúc đó bạn vào serverinfo kiểm tra CPU, RAM xem sao nhé.

  1. Trung do 5 comment

    Hi a Luân,
    Hiện e đang xài VPS vultr và hocvps, gần đây bị lỗi 502 liên tục. Check log: recv() failed (104: Connection reset by peer) while reading response header from upstream….
    Đã thử thay đổi thông số CGI mà vẫn vậy, nhờ a Luân tư vấn giúp

      1. Do Trung 5 comment

        Ví dụ như lúc login, send email,.. thì bị request 1 hồi lâu văng ra lỗi 502:

        Trong file php-fpm-slow.log:

        [15-Dec-2016 18:03:54] [pool www] pid 14565
        script_filename = /home/.com/public_html/wp-admin/options-general.php
        [0x00007feca1fca028] stream_socket_client() /home/.com/public_html/wp-includes/class-smtp.php:283
        [0x00007feca1fc9518] connect() /home/.com/public_html/wp-includes/class-phpmailer.php:1524
        [0x00007feca1fc8200] smtpConnect() /home/.com/public_html/wp-includes/class-phpmailer.php:1409
        [0x00007feca1fc7210] smtpSend() /home/.com/public_html/wp-includes/class-phpmailer.php:1245
        [0x00007feca1fc6cb0] postSend() /home/.com/public_html/wp-includes/class-phpmailer.php:1125
        [0x00007feca1fc6850] send() /home/.com/public_html/wp-includes/pluggable.php:471
        [0x00007feca1fc6638] wp_mail() /home/.com/public_html/wp-content/plugins/wp-mail-smtp/wp_mail_smtp.php:197
        [0x00007ffe2ce6d400] wp_mail_smtp_options_page() unknown:0
        [0x00007feca1fc64a8] call_user_func_array() /home/.com/public_html/wp-includes/class-wp-hook.php:298
        [0x00007feca1fc6378] apply_filters() /home/.com/public_html/wp-includes/class-wp-hook.php:323
        [0x00007feca1fc6210] do_action() /home/.com/public_html/wp-includes/plugin.php:453
        [0x00007feca1fc6020] do_action() /home/.com/public_html/wp-admin/admin.php:222
        [0x00007feca1fc5e08] +++ dump failed

        Trong error.log:
        /wp-content/themes/xxx/ HTTP/1.1″, upstream: “fastcgi://127.0.0.1:9000”, host: “xxx.net”
        2016/12/16 10:06:31 [error] 24508#24508: *5916 directory index of “/home/xxx.net/public_html/wp-includes/css/” is forbidden, client: 173.255.233.124, server: xxx.net, request: “GET /wp-includes/css/ HTTP/1.1”, host: “xxx.net”, referrer: “”

  2. Vũ Phan 1 comment

    xin chào Luân
    mình có cà hocvps script vào vps và liên tục bị lỗi 502 này, mình có làm theo bài này nhưng ko có tác dụng.
    Mình có tạo lại vps mới và làm lại từ đầu nhưng cho đến bây giờ vẫn không khắc phục được lỗi

    1. Việt Phương Moderator

      Lỗi 502 do nhiều vấn đề lắm bạn à. Bạn check log xem cụ thể do vấn đề gì

  3. Tran Tu 1 comment

    Ad ơi mình có website đang chạy nginx máy tính thì vào bình thường còn điện thoại thì không truy cập được. Giúp mình với!

  4. chinh 3 comment

    bác sửa giúp e lỗi này với ạ..! hm nọ e có cài WP VPS nhưng hm nay e cài scrip hocvps vào là bị lỗi 502 này luôn ạ. site e đây mayaptrungauco.com

    1. Việt Phương Moderator

      HocVPS được cài trên VPS mới chứ không cài tiếp được vào 1 VPS đã có hệ quản trị bạn à. Lỗi 502 chắc do việc cài HocVPS đè vào gây xung đột các service rồi

    1. Việt Phương Moderator

      1. Hiện mình truy cập bình thường nên chắc cần xem access log mới biết thời điểm ngắt kết nối lỗi cụ thể như thế nào.
      2. Bạn xem thư mục /Techsystem/ trong thư mục website có nội dung không? ls -al /home/fonts.edu.vn/public_html/Techsystem/

      1. Nghĩa 3 comment

        Cám ơn bạn!
        Mình vào log của web thấy báo :
        ERROR – 2017-04-25 06:31:59 –> Cache: Failed to initialize APC; extension not loaded/enabled?

        1. Việt Phương Moderator

          Mình không rõ về vấn đề này rồi. Còn phần /Techsystem/ ok chưa bạn?

  5. Công Phạm 4 comment

    Chào Luân
    Các trang web của mình đặt trên 1 vps đều bị lỗi 502 Bad Gateway. Mình khởi động lại vps nhưng không được. Nó hiện thông báo lỗi như dưới này. Bạn xem giúp mình với.

    [root@CENTOS65MIN-001 home]# service nginx restart
    nginx: [alert] could not open error log file: open() “/var/log/nginx/error.log” failed (30: Read-only file system)
    2017/06/17 06:34:22 [emerg] 54595#54595: open() “/var/run/nginx.pid” failed (30: Read-only file system)
    nginx: configuration file /etc/nginx/nginx.conf test failed

    [root@CENTOS65MIN-001 home]# nginx -t
    nginx: [alert] could not open error log file: open() “/var/log/nginx/error.log” failed (30: Read-only file system)
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    2017/06/17 06:44:37 [emerg] 60313#60313: open() “/var/run/nginx.pid” failed (30: Read-only file system)
    nginx: configuration file /etc/nginx/nginx.conf test failed.pid” failed (30: Read-only file system)

    nginx: configuration file /etc/nginx/nginx.conf test failed

    1. Luân Trần Admin

      Bạn kiểm tra lại file log có vấn đề gì không? Có khi do full HDD đó?

  6. Bạc Đỏ 46 comment

    Mình update nginx lên bản 1.12.0 theo hướng dẫn ở mục 1 trong bài https://hocvps.com/http2-nginx/

    Chạy lệnh service nginx restart thì bị báo

    nginx: [warn] nginx was built without PCRE JIT support in /etc/nginx/nginx.conf:7
    nginx: [emerg] unknown directive “more_set_headers” in /etc/nginx/nginx.conf:29
    nginx: configuration file /etc/nginx/nginx.conf test failed

    các website vẫn chạy bình thường

    Nhưng hôm nay 19/7 vào trang quản trị web wp-admin thì bị báo 502 Bad Gateway

    Có bác nào biết lỗi gì ko ạ. Chỉ giáo e với ạ. E cảm ơn nhiều

    1. Việt Phương Moderator

      Trong quá trình cài đặt bạn đã làm mất 1 số module rồi, mà trong cấu hình của /etc/nginx/nginx.conf lại quy định nó.
      Bạn không copy toàn bộ configure gốc của Nginx trên VPS vào lúc compile à?
      Giờ chỉ kiểm tra thiếu module nào thì thêm module đó. Bạn search lỗi theo dòng 7, dòng 29 để tìm module trong /etc/nginx/nginx.conf mà cài lại
      Cho mình nội dung file /etc/nginx/nginx.conf của bạn. Chắc có dòng pcre_jit on.
      Và hệ thống bạn cài gì?

    1. Việt Phương Moderator

      VPSSIM à. Tạm thời bạn comment # dòng 7 và 29 trong Nginx Conf đi rồi restart lại Nginx xem ok không.
      Sau đó, nếu bạn muốn sử dụng 2 dòng ý thì nghiên cứu lại module ban đầu. Bạn nên cài 1 VPS VPSSIM khác để xem module gốc của nginx là gì, thì compile với
      toàn bộ module gốc đó
      Cái dòng 7 thì là module --with-pcre-jit còn dòng 29 thì mình không rõ

      1. Bạc Đỏ 46 comment

        Mình đã khóa 2 dòng 7, 29. Chạy lệnh service nginx restart thì hiển thị thông báo sau

        nginx: [warn] conflicting server name “www.sonaki.tk” on 0.0.0.0:80, ignored
        nginx: [warn] conflicting server name “sonaki.tk” on 0.0.0.0:80, ignored
        nginx: [emerg] mkdir() “/var/cache/nginx/client_temp” failed (2: No such file or directory)
        nginx: configuration file /etc/nginx/nginx.conf test failed

        sonaki.tk mình đã xóa khỏi vps từ lâu

        Lẽ nào phải cài lại vps :((

        1. Việt Phương Moderator

          1. Nginx conf của domain bạn đã xóa chưa? Kiểm tra trong /etc/nginx/conf.d xem
          2. Tạo file như nó bảo thôi, cấu hình Nginx của bạn có chỗ yêu cầu file này
          mkdir /var/cache/nginx
          touch /var/cache/nginx/client_temp

          Có thể cần phải chown file đó cho nginx:nginx

      2. Bạc Đỏ 46 comment

        mình cài 1 vps VPSSIM khác lấy cấu hình module gốc

        Bước compile Nginx đến cuối báo nhọ thế chứ

        make[1]: *** [objs/addon/src/ngx_http_echo_request_info.o] Error 1
        make[1]: Leaving directory `/usr/local/src/nginx-1.12.0′
        make: *** [build] Error 2

        1. Việt Phương Moderator

          VPS ý bạn đã sửa đc lỗi Nginx chưa đã, thì mới lo việc compile lại Nginx sau.

          1. Bạc Đỏ 46 comment

            Lỗi này cũng xuất hiện ở vps mới ý bạn ạ, ngay sau khi cài vpssim chưa động chạm gì

          2. Việt Phương Moderator

            Mình hỏi vấn đề này cơ:
            nginx: [warn] conflicting server name “www.sonaki.tk” on 0.0.0.0:80, ignored
            nginx: [warn] conflicting server name “sonaki.tk” on 0.0.0.0:80, ignored
            nginx: [emerg] mkdir() “/var/cache/nginx/client_temp” failed (2: No such file or directory)
            nginx: configuration file /etc/nginx/nginx.conf test failed

            Còn việc compile Nginx trên VPSSIM mới lỗi báo như thế nào? Với việc bạn dùng toàn bộ module gốc của VPSSIM

          3. Việt Phương Moderator

            Bên cạnh đó, VPSSIM lúc cài đặt đã rebuild lại Nginx để thêm hàng loạt module rồi. Mình thấy đã có OpenSSL 1.0.2h thì bạn đâu cầu compile lại Nginx đâu with-openssl=/usr/local/vpssim/openssl-1.0.2h. Cụ thể Nginx bên VPSSIM
            nginx version: nginx/1.11.4
            built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
            built with OpenSSL 1.0.2h 3 May 2016
            TLS SNI support enabled
            configure arguments: –prefix=/usr/share/nginx –sbin-path=/usr/sbin/nginx –group=nginx –user=nginx –pid-path=/var/run/nginx.pid –conf-path=/etc/nginx/nginx.conf –with-http_v2_module –with-http_ssl_module –with-ipv6 –with-http_flv_module –with-http_mp4_module –with-http_random_index_module –with-http_secure_link_module –with-http_stub_status_module –with-http_sub_module –with-http_xslt_module –with-http_addition_module –with-http_dav_module –with-http_geoip_module –with-http_image_filter_module –with-http_perl_module –with-mail –with-mail_ssl_module –with-http_gunzip_module –with-http_gzip_static_module –with-file-aio –with-pcre=/usr/local/vpssim/pcre-8.39 –with-pcre-jit –with-google_perftools_module –with-debug –with-openssl=/usr/local/vpssim/openssl-1.0.2h –with-zlib=/usr/local/vpssim/zlib-1.2.8 –with-openssl-opt=enable-tlsext –with-http_realip_module –with-http_stub_status_module –add-module=/usr/local/vpssim/ngx_devel_kit-master –add-module=/usr/local/vpssim/echo-nginx-module-master –add-module=/usr/local/vpssim/memc-nginx-module-master –add-module=/usr/local/vpssim/set-misc-nginx-module-master –add-module=/usr/local/vpssim/srcache-nginx-module-master –add-module=/usr/local/vpssim/ngx_http_concat –add-module=/usr/local/vpssim/ngx_http_substitutions_filter_module-master –add-module=/usr/local/vpssim/ngx_cache_purge-master –add-module=/usr/local/vpssim/headers-more-nginx-module-master –add-module=/usr/local/vpssim/redis2-nginx-module-master –add-module=/usr/local/vpssim/ngx_http_redis-0.3.8

          4. Bạc Đỏ 46 comment

            1. Mình muốn nâng cấp lên nginx 1.12, OpenSSL 1.1.0f

            2. Thông báo vẫn chưa xử lý được khi restart lại nginx bằng lệnh service nginx restart
            nginx: [warn] conflicting server name “www.sonaki.tk” on 0.0.0.0:80, ignored
            nginx: [warn] conflicting server name “sonaki.tk” on 0.0.0.0:80, ignored
            nginx: configuration file /etc/nginx/nginx.conf test failed

            sonaki.tk mình xóa bằng menu lệnh trong vpssim, kiểm tra trong /etc/nginx/conf.d cũng ko thấy Nginx conf của domain sonaki.tk

            3. Đã xử lý được
            nginx: [emerg] mkdir() “/var/cache/nginx/client_temp” failed (2: No such file or directory)

          5. Việt Phương Moderator

            1. Mình thấy không quá cần thiết khi cứ phiên bản mới là cần phải update hẳn đâu. Do VPSSIM nhiều module cần compile từ source, có thể thấy –add-module=/usr/local/vpssim/ là cực nhiều nên việc compile lại mình không sure lắm với các module này.
            2. Bạn chạy fuser -k 80/tcp xong restart vẫn bị vậy?
            3. OK

  7. Bạc Đỏ 46 comment

    1. Mình nghĩ các bản update sẽ có nhiều cải tiến tốc độ truy cập & bảo mật cho vps & web
    2. Vẫn bị vậy bạn ạ 🙁

    1. Việt Phương Moderator

      1. Vậy lúc compile bạn bỏ module with-openssl=/usr/local/vpssim/openssl-1.0.2h rồi compile xem đc không. Các module compile ngoài của VPSSIM khá nhiều nên mình cũng k chắc lắm về việc này
      2. Kì lạ, vậy thì VPSSIM còn lưu cấu hình Nginx ở đâu nữa nhỉ. Bạn cho mình nội dung file /etc/nginx/nginx.conf của bạn và kiểm tra lại thư mục /etc/nginx/conf.d. Có thể file không tên là sonaik nhưng có nội dung cấu hình sonaik

Comment của bạn

Your email address will not be published. Required fields are marked *