尝试加载大视频但收到“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_time
和600
(5 分钟),所以当我将max_execution_time
更改为-1
时,它解决了问题。
【讨论】:
以上是关于尝试加载大视频但收到“503 服务不可用”的主要内容,如果未能解决你的问题,请参考以下文章
多语言 Google 翻译 API 正在返回 (503) 服务器不可用