返回》

503服务不可用的故障排除解决办法

很多时候,会发现您的网站Web服务器有时候返回“503 服务不可用”HTTP 响应,造成这个问题的原因有很多,其中大多数实际上根本不是 Web 服务器的问题!如果使用LiteSpeed系统或者OpenLiteSpeed,让我们先看看 503 错误的可能原因,看看哪些错误您可以轻松自行解决。什么是 503 错误?当 Web 浏览器向您的 Web 服务器发送请求时,服务器会响应所请求的资源(如果适用)和状态代码。该代码由 3 位数字组成,表示请求成功或失败。5xx 系列中的任何响应代码都表示服务器端错误。特别是 503,表示服务不可用。不幸的是,它不会告诉您请求的服务失败的原因。排除服务器问题首先,让我们确保您没有遇到与 LiteSpeed Web 服务器相关的问题。最简单的方法是暂时将服务器切换到 Apache。切换后,尝试在 Apache 运行时复制 503 错误。如果 Apache 运行时仍然出现 503 错误,则这不是服务器问题。切换回 LiteSpeed,并继续阅读下面的故障排除建议。如果 Apache 运行时 503 错误消失,那么是时候联系 LiteSpeed 支持了。您可以从客户区开具一张票。请务必提供尽可能多的详细信息,以帮助支持团队重现问题!如果您已经排除了服务器问题,那么是时候找出问题的真正原因了。503 错误通常是由 PHP 崩溃、内存问题或两者兼而有之引起的。您可以从 PHP 信息页面中了解到很多信息。如果您没有,您可以创建一个。检查 phpinfo 页面PHP 信息页面为您提供了有关 PHP 安装的大量详细信息。即使您的系统在使用 PHP 时出现问题,它也应该能够处理这个非常基本的页面。除其他信息外,PHP 信息页面还为您提供了有关扩展、内存限制和执行时间的有用信息。通过这些信息,您可以查看OPCache是否启用、内存限制是多少以及加载了哪些扩展,这些都是寻找 503 错误原因时有用的信息。您还可以使用此页面比较 Apache 和 LiteSpeed 的 PHP 实现之间的差异。提示:如果 Apache 和 LSWS PHP 信息页面不同,请开具支持票,以便我们查看。检查日志文件有许多不同的日志文件可以帮助您确定 503 错误的原因。请尝试按以下顺序检查这些日志:标准错误日志Web 服务器错误日志系统日志PHP 错误日志标准错误日志 stderr.log该stderr.log文件包含 PHP 运行时生成的标准错误。您通常可以在/var/log/apache2/或/usr/local/lsws/logs/目录中找到它。此日志通常最有帮助。在此标准错误日志的示例输出中,您可以看到您正在处理内存问题:[STDERR] fork() failed, please increase process limit: Cannot allocate memoryWeb 服务器错误日志此错误日志由 Web 服务器生成。您通常可以在/var/log/apache2/或/usr/local/lsws/logs/目录中找到它。如果 Web 服务器在导致 PHP 失败方面发挥了一定作用,您应该可以从此日志中获得一些有用的提示。来自 Web 服务器错误日志的此示例输出表明您打开的文件过多:[INFO] [319934] [1.1.1.1:49873-1#APVH:lsapi] connection to [uds://tmp/lshttpd/APVH-php56.sock] on request #0, confirmed, 0, associated process: 0, running: 0, error: Too many open files!另一个值得尝试的好方法是:搜索/etc/apache2/logs/error_log术语oops:grep oops /etc/apache2/logs/error_log如果您查看时间戳,这将让您了解自上次尝试修复以来已生成了多少 503 错误。不幸的是,它不太可能告诉您错误发生的原因,但它可以让您了解错误发生的时间以及涉及哪些域。系统日志此错误日志由操作系统生成。您通常可以找到它作为/var/log/messages或/var/log/syslog。如果 PHP 受到操作系统的影响,此日志会很有帮助。在此系统日志的示例输出中,您可以看到该lsphp进程已被 LFD 防火墙安全功能终止:lfd[18304]: *User Processing* PID:18264 Kill:1 User:xxxxx VM:538(MB) EXE:/usr/local/lsws/fcgi-bin/lsphp-5.4.42 CMD:lsphp5您可以通过从 LFD 中排除来解决此问题lsphp。PHP 错误日志此错误日志在 中定义php.ini,您可以检查phpinfo.php文件位置。默认情况下,cPanel 会将其设置为error_log。根据您在 PHP 中设置的日志记录级别,当 PHP 检测到错误或警告时,它将被更新。它通常在 PHP 脚本运行的同一文件夹中生成。PHP 错误日志的此示例输出显示应用程序内存在致命错误test.php:Fatal error: Call to undefined function my_function() in /home/mysite/public_html/test.php on line 2解决这些类型的错误的最佳方法是将它们转发给出现故障的 PHP 应用程序的开发人员。禁用Opcode缓存Opcode将字节码存储在共享内存中,因此 PHP 不需要一遍又一遍地处理相同的调用,但有时会导致问题。例如,此错误指向Opcode缓存问题:[STDERR] zend_mm_heap corrupted这些是您在排除故障时应考虑禁用的一些常见操作码缓存扩展:OPCacheAPC/uXCacheeAccelerator禁用不安全的 PHP 扩展除了Opcode缓存扩展之外,还有其他已知会导致问题的 PHP 扩展,尤其是在它们过时的情况下。这些包括:Imunify360ZendGuardLoaderSuhosinionCube我们建议您定期检查这些扩展程序的更新。如果您已经在使用最新版本,请尝试禁用它们并查看问题是否仍然存在。如果您禁用这些插件但仍然收到“503 服务不可用”响应,请禁用所有其他扩展,然后再次检查。检查磁盘空间PHP 有时会将文件存储在您的服务器上以便正常运行。如果您的磁盘已满,尤其是存放 的分区/tmp/,则可能是导致 503 错误的原因。要检查磁盘空间使用情况,请运行以下命令:sudo df-h 输出应如下所示:Filesystem Size Used Avail Use% Mounted on devtmpfs 901M 0 901M 0% /dev tmpfs 915M 96K 915M 1% /dev/shm tmpfs 915M 89M 827M 10% /run tmpfs 915M 0 915M 0% /sys/fs/cgroup /dev/mapper/cl_centos 29G 4.2G 25G 15% / /dev/vda1 976M 184M 726M 21% /boot tmpfs 183M 0 183M 0% /run/user/0如果磁盘已满,请清理它们。删除所有不必要的文件。这应该可以解决 503 错误。检查 CloudLinux 限制如果您正在运行 CloudLinux 和轻量级虚拟环境 (LVE),则可能会达到 LVE 限制。要调整它们,请按照CloudLinux 的指南进行操作。检查内存限制如果您确认运行在 LVE 限制范围内,请尝试调整 PHP 内存限制。PHP 信息页面会告诉您php.ini文件所在的位置。编辑文件并增加memory_limit值。有时脚本可能会附加.htaccess覆盖 PHP 设置的行。这可以取代 php.ini 文件中的设置。memory_limit其中的条目.htaccess看起来如下所示:php_value memory_limit 100M.htaccess您可以根据需要在文件中添加、删除或修改此行。如果以上均无影响,则 LSPHP 可能需要增加其虚拟内存。为此,请导航至WebAdmin 控制台 > 配置 > 服务器 > PHP,然后单击PHP 处理程序默认值的编辑。更改以下设置,然后单击“保存”:内存软限制:4097M内存硬限制:4098M导航到操作并按下重新启动分离的 PHP 进程旁边的图标。然后应用更改/优雅重启。自动修复 503您可能已经注意到 LiteSpeed Web Server 具有自动修复 503 错误设置。此功能不会永久修复 503 错误。它会正常重启服务器,这通常可以暂时解决问题。自动修复 503 错误默认启用。这意味着只要 30 秒内 503 错误的数量超过 30 个,服务器就会自动重启。您不应依赖此功能来修复重复出现的 503 错误。始终建议按照上述步骤找到永久修复方法。提示:如果您想禁用此功能,请导航至WebAdmin 控制台 > 服务器 > 常规并将自动修复 503 错误设置为No。结论这些信息应该可以帮助您找到大多数 503 错误的原因,以上就是搬主题分享的故障排除方法。
THE END