Ubuntu 上 Nginx 報錯 502 Bad Gateway


環境
OS: Ubuntu 19.04
nginx version: nginx/1.16.0

解決辦法

修改 php-fpm 的配置,將 unix 套接字模式改成 tcp/ip 的方式。sudo vi /etc/php/7.2/fpm/pool.d/www.conf

;listen = /run/php/php7.2-fpm.sock #給老子滾犢子
listen = 127.0.0.1:9000

同步修改 nginx conf 文件,sudo vi /etc/nginx/conf.d/server.conf

    location ~* \.php$ {
      fastcgi_pass    127.0.0.1:9000;
      #fastcgi_pass    unix:/run/php/php7.2-fpm.sock; 給老子滾犢子
      include         fastcgi_params;
      fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
      fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
    }

一切正常了。

排查過程

php 測試報錯 502 Bad Gateway

直接訪問 localhost 是沒有問題的,因為直接解析的是靜態文件 index.html

刪除默認工作目錄下 index.html,新建 php 測試文件,sudo vi /usr/share/nginx/html/index.php

<?php phpinfo(); ?>

無法解析 PHP,什么情況!?

報錯原因

這時候我們可以猜到是 php-fpm 的問題,可是問題在哪里呢?原因是在 php-fpm 的配置中默認為 listen = /run/php/php7.2-fpm.sock ,但是有時候 unix 套接字模式下會導致 502 ,我這里就躺着中槍了!

參考文章


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM