本站使用的是7B2主题,前段时间频繁出现502 bad gateway错误。搜索了一下,出现问题的不少,共同特征是都使用PHP 8.0和PHP 8.1,都是用的是宝塔面板。解决办法也是五花八门。本站实测了一下,以下办法可以解决。
使用PHP 7.4版本
目前可以肯定的是,出现该问题与主题采用Swoole Compiler加密有关。而且问题都出在PHP 8.0和PHP 8.1两个版本。经过测试,使用PHP 7.4版本可以解决频繁出现502的问题。
更换控制面板
出现此问题的好像都是使用宝塔控制面板。经过测试,使用AMH面板,环境为PHP 8.1 + MySQL 8.0 + Nginx 1.26(均编译安装),没有再出现相关问题。
其他解决办法
其他有很多朋友也贡献了很多解决办法,一些经我测试无效,一些没测,大家可自行测试。
Opcache JIT 配置法
众所周知,柒比贰(7B2)主题使用的是SwooleC(Swoole Compiler)加密,而Swoole Compiler 软件本身就是将 PHP 代码编译为经过特殊处理的opcode,所以使用Swoole Loader加载程序时,不需要其他OpCache扩展,包括opcache、apc、ZendGuardLoader、eAccelerator等扩展。
如果你的应用程序中,同时有加密代码和非加密代码。当swoole_loader发现是非加密代码时,会将编译控制权转给opcache,由opcache实现代码的加载。
Opcache JIT 引起的 502 问题
请注意 Opcache JIT 与 Swoole Loader 存在不兼容,若要同时使用 swoole_loader 和 opcache 时必须要修改 php.ini 关闭 opcache.jit
opcache.jit=0
修改PHP配置文件
在php的配置文件最末端加上request_terminate_timeout =10s
。

移动loader81.so位置
只需要把B2主题需要的loader81.so这个扩展,移动到PHP配置的最后一行即可!

卸载Redis Object Cache
有网友说,卸载了Redis Object Cache后所有问题也恢复正常了,7B2主题作者也认为和Redis Object Cache插件有关。