尝试加载大视频但收到“503 服务不可用”

Posted

技术标签:

【中文标题】尝试加载大视频但收到“503 服务不可用”【英文标题】:Trying to load large video but getting '503 Service Unavailable' 【发布时间】:2020-08-07 12:19:36 【问题描述】:

我在将大视频加载到浏览器时遇到问题。我有一个video.php 文件,它创建一个$token 来访问$_GET['product'] 中指定的产品,然后video.js 请求访问视频文件。

<video id="viewer"
class="video-js vjs-default-skin vjs-big-play-centered"
data-setup=' "controls": true, "autoplay": false, "preload": "metadata" '
  disablePictureInPicture controls="disabled">
  <source src="videostream?type=m3u8&path=<?php echo $token; ?>/prog_index.m3u8" type="application/x-mpegURL">
</video>

然后服务器应返回视频块。视频的存储方式如下:

private
- products
-- 1
--- prog_index.m3u8
--- fileSequence0.ts
--- fileSequence1.ts
--- fileSequence2.ts
--- and so on...

它将文件夹复制到tmp,文件夹的名称是令牌。假设令牌是1234123412341234

private
- tmp
-- 1234123412341234
--- prog_index.m3u8
--- fileSequence0.ts
--- fileSequence1.ts
--- fileSequence2.ts
--- and so on...

文件在加载时会被删除。

当我尝试访问 mysite.com/video.php?product=1 时,我得到 503 Service Unavailable。

视频文件的总大小约为 1-2GB,我使用的是 GoDaddy 托管。

谢谢!

【问题讨论】:

你在错误日志中得到了什么? @MelvynMarigny 错误日志中没有任何内容。 503 错误总是出现在错误日志中,除非明确禁止。访问日志中有什么内容? @ximaera 总是出现在错误日志中的是错误 500s,而不是 503s。 您使用的是共享主机吗?如果是,共享主机将不允许您上传大/巨大的文件或使用高 CPU/内存消耗。如果您收到 503 错误,则表示您的应用程序池已停止工作,这表明您的托管服务提供商限制了您的应用程序池 【参考方案1】:

为什么会出现 503 错误?

GoDaddy 托管会抛出 503 ERROR,如果:

a)您的网站达到了最大并发连接限制或

b)如果您的主机帐户用尽了所有可用资源(这里可能就是这种情况,因为您提到必须加载超过 1 GB 的大型视频文件

分辨率

根据您的托管帐户类型,解决方案如下:

Linux Hosting (cPanel):在您的 Linux Hosting 帐户中结束 PHP 进程(更多信息请点击 here)

Windows 主机 (Plesk): 试试recycling your application pool

虚拟主机(Linux):使用 Manage system process (Linux) in my Web & Classic Hosting account结束进程

虚拟主机(Windows):试试Recycle your application pool(windows)

另一个可能的问题

如果您将 WordPress 与您的网站一起使用,您的某个插件可能会导致问题。尝试禁用和启用所有这些,并一次启用它们,看看它们是否会导致问题。

故障排除和预防:

确保在加载大型视频时有足够的硬盘空间,以免收到503 ERROR

希望这对您有所帮助,并希望这能解决您的问题。

注意:您的错误日志中没有显示任何内容,因为本质上没有真正的错误。正如您在上面的解决方案中看到的那样,代码没有任何问题。

【讨论】:

当我登录到 cPanel 时,它会显示在侧边栏上,并且资源已用完,所以我相信你是正确的,是 'b' 导致了问题。 物理内存用完是否与此有关。我尝试加载我的视频,然后 cPanel 告诉我物理内存快满了。 我很高兴我能帮上忙 可能是硬盘空间。 3 号链接重定向到 1 号链接,4 号链接表示经典主机不再可用。 ???【参考方案2】:

我发现我的 PHP 超时了。我的php.ini 文件有一个max_execution_time600(5 分钟),所以当我将max_execution_time 更改为-1 时,它解决了问题。

【讨论】:

以上是关于尝试加载大视频但收到“503 服务不可用”的主要内容,如果未能解决你的问题,请参考以下文章

谷歌浏览器返回 503 服务不可用

多语言 Google 翻译 API 正在返回 (503) 服务器不可用

IIS HTTP 错误 503。服务不可用

Coldfusion 503 服务不可用页面

503(服务器不可用)加载本地 XHTML 文件时出现 WebException

503 服务不可用错误 Apache Tomcat