升级到 LTS 22.04.1 后,nginx 显示 502 错误网关错误

升级到 LTS 22.04.1 后,nginx 显示 502 错误网关错误

我刚刚升级到最新的 LTS 版本 22.04.1。一切顺利,我被要求重新启动服务器以完成升级。发布此信息后,当我尝试访问我的网络服务器时,我看到了错误502 Bad Gateway nginx/1.18.0 (Ubuntu)

从错误日志中我看到了这一点:[notice] 50936#50936: using inherited sockets from "7;8;"

nginx 和 mysql 服务器均处于活动状态并正在运行。我该如何修复此问题?

答案1

502 表示 nginx 无法连接到上游,在您的情况下是 php-fpm。PHP 可能已随发行版升级而更新。

ls /var/run/php/
php8.1-fpm.pid  php8.1-fpm.sock  php-fpm.sock

注意php8.1-fpm.sock

在 中/etc/nginx/sites-available/default,应该有类似这样的内容:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;

    # With php-fpm (or other unix sockets):
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    # With php-cgi (or other tcp sockets):
    # fastcgi_pass 127.0.0.1:9000;
}

更新之前是 php7.4,现在套接字不存在了,所以 nginx 无法将文件传递给 php-fpm。只需更改/var/run/php/php7.4-fpm.sock为新的套接字文件名,然后执行nginx -s reload,它应该可以再次工作。更好的是,将其更改为/var/run/php/php-fpm.sock无论版本如何(基于默认安装的 PHP),它是实际 PHP 套接字的符号链接。这样您就不必在每次升级时都进行更改。

相关内容