那些网站是做俄罗斯鞋子,我想建个网站,专业制作,网站手机网站制作前言
本文为华为云云耀云服务器L实例测评文章#xff0c;测评内容是云耀云服务器L实例搭建在线视频网站#xff0c;大家可以将这个网站作为私人影院或是分享给朋友#xff0c;但是尽量不要更广的传播#xff0c;因为这涉及到版权问题 系统配置#xff1a;华为云 2核2G 3M…前言
本文为华为云云耀云服务器L实例测评文章测评内容是云耀云服务器L实例搭建在线视频网站大家可以将这个网站作为私人影院或是分享给朋友但是尽量不要更广的传播因为这涉及到版权问题 系统配置华为云 2核2G 3M CentOS7.9 华为云服务器控制台https://console.huaweicloud.com/smb/ 安装配置
环境配置
Miniconda
cd
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh然后一直回车直到遇到 是否同意协议? 选择 yes回车
选择Miniconda3的安装位置这里选择回车选择默认的开始安装
是否初始化并且会添加环境变量选择yes回车
最后刷新环境变量
source ~/.bashrc Docker
安装
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin启动
sudo systemctl start docker
sudo docker run hello-world此命令下载测试映像并在容器中运行它。当容器运行时它会打印一条确认消息并退出。
MySQL
部署容器必须挂载数据卷
docker run -d -p 3306:3306 --name mysql-container -e MYSQL_ROOT_PASSWORD111111 -v ~/sql:/sql mysql:5.7进入容器
# 进入容器
docker exec -it mysql-container bash
# 进入 MySQL 命令行
mysql -uroot -p111111创建 video 数据库
CREATE DATABASE video CHARACTER SET utf8;注意删除容器命令 docker rm mysql-container -f 端口开放
我们需要配云置服务器的安全组放行 8000 端口。
设置 CentOS 防火墙可以直接关闭防火墙也可以单独通过端口比较推荐
# 关闭
systemctl stop firewalld
# 开启特定端口
firewall-cmd --zonepublic --add-port8000/tcp --permanent
# 关闭特定端口
firewall-cmd --zonepublic --remove-port8000/tcp --permanent
# 查看防火墙端口
firewall-cmd --list-ports但是需要注意如果您做了如上配置仍旧无法访问端口可能是因为华为云针对入规则安全组默认配置有问题实测 CentOS7.9 有问题您需要做如下配置这仅仅是针对于某些系统才需要做的操作大部分系统不需要
修改 IPv4 为如下配置 如果您只是想要快速搭建部署项目不想要了解具体实现细节可以直接跳转 部署项目平台可能不支持 MD 目录跳转请自行跳转到对应目录 注意原作者的操作系统是 Windows如果您想要在 Windows 上部署项目可以直接参考原作者仓库如果您想要使用 Linux 部署可以继续向下阅读 功能介绍
注册登录 首页功能 搜索功能 视频功能 现在项目的基本功能介绍已经结束如果您想要查看更详细的功能介绍可以直接查阅原作者开发文档videoproject/doc/开发文档 部署项目
本章节将会实现快速搭建部署项目Linux博主 fork 原作者的仓库之后做了一些修改以适配个人搭建部署需求同时原作者很多文件不全除此之外也修复了一些问题
原作者仓库地址geeeeeeeek/videoproject
博主仓库地址ReturnTmp/videoproject
拉取项目
可以自行配置 SSH或是直接下载压缩包再上传
git clone https://github.com/ReturnTmp/videoproject.git依赖安装
创建环境
# 创建环境
conda create -n videoweb python3.7
# 激活环境
conda activate videoweb安装依赖
cd videoproject/
pip install -r requirements.txt数据库导入
运行容器
docker run -d -p 3306:3306 --name mysql-container -e MYSQL_ROOT_PASSWORD111111 -v ~/sql:/sql mysql:5.7创建数据库
# 进入容器
docker exec -it mysql-container bash
mysql -uroot -p111111
CREATE DATABASE video CHARACTER SET utf8;然后项目根目录下执行如下命令
python manage.py makemigrations users video myadmin comment
python manage.py migrate再复制项目根目录的 video.sql 到 ~/sql 文件夹下本步骤仅作记录实际部署请跳过
cp video.sql ~/sql/
docker exec -it mysql-container bash
mysql -uroot -p video /sql/video.sql 但是执行时可能出现问题 Cannot delete or update a parent row: a foreign key constraint fails快速方法如下
先禁用外键约束检查执行 sql 文件之后再开启外键约束检查
# 禁用
SET FOREIGN_KEY_CHECKS0;
# 开启
SET FOREIGN_KEY_CHECKS1;但是其实这并不规范应该按照约束规范执行
运行项目
python manage.py runserver 0.0.0.0:8000注意一定要是配置 0.0.0.0 因为默认启动是使用回环地址 127.0.0.1只能本机访问导致外部无法访问 配置端口
但是只配置上述后会出现问题 Invalid HTTP_HOST header: 114.116.230.29:8000. You may need to add 114.116.230.29 to ALLOWED_HOSTS.
我们需要做如下操作打开 videoproject/settings.py 文件然后添加如下内容 注意我已经默认配置通过所有 IP有需求的可以自行更改 # 需要配置本机IP
ALLOWED_HOSTS [45.112.123.59,]
# 或是直接通过所有IP
ALLOWED_HOSTS [*,]访问应用
最后访问视频首页localhost:8000 localhost 换成自己的服务器 IP后文不再赘述
然后我们点击右上角的登录然后再点击注册用户最后注册用户即可使用用户名admin密码admin123456
首页界面 然后访问后台管理页面localhost:8000/myadmin
首先需要手动把 v_user表中上面我们注册的 amin 用户 is_staff 和 is_superuser 字段修改为 1 注意我们提升为 admin 权限之后可以查看数据、搜索数据。但是暂无编辑和删除数据权限 然后配置 settings.py添加如下
CSRF_TRUSTED_ORIGINS [http://localhost:8000,http://your_ip:8000, ]CORS_ORIGIN_WHITELIST [http://localhost:8000,http://your_ip:8000,]后台总览 添加视频
首先我们需要添加分类分类名称为中文会出现问题 然后上传视频填写相关信息这里也是填写中文有问题 发布成功 其他功能不在此演示留待各位自行探索
技术解析
其实搭建 视频网站和普通网站在技术实现方案上有很大的差别上面这种只是给出的非常简易的实现方式不能用于生产环境下面将要详细讲解 注当然我也只是从自身的角度阐发观点可能有失偏颇有熟悉视频网站开发的小伙伴也可以在评论区留言纠正 区别对比
视频网站与普通网站相比具有如下不同
存储数据量不同。用于视频存储、缓存的数据量一般是 TB 级需要用合适的技术方法做大数据存储管理需要有合适的技术方法做好存储设备的高速读写优化。网站带宽使用不同。普通网站有 2Mbp 的出口就可以很好地运行视频网站一般需要上百兆的出口当并发量较大时如超过 1000则需要千兆的出口。专业视频技术支撑不同。视频技术包括视频转码、切片、截图、元数据提取、流化的技术存储缓存和读写复用技术视频播放技术视频加速技术多终端适配技术等。网络资源使用优化技术不同。在同样的硬件和网络条件下如果使用普通网站的技术通常几十个并发就很卡顿缓慢而试用专业的流媒体播出技术可以在数千并发时依然稳定顺畅。技术团队不同。普通网站需要网页设计和前后端开发人员视频网站则同时需要视频技术开发人员。
搭建细节
主机配置
视频网站的主机可以使用云主机也可以使用物理机或虚拟主机。如果是在 互联网运营则建议使用 云主机。如果在 局域网或专网运行则使用 物理机
主机的配置根据实际的 并发需求 来做可以按照如下配置
100 并发 2 核 CPU4GB 内存百兆出口 500 并发 4 核 CPU8GB 内存千兆出口 1000 并发8 核 CPU16GB 内存千兆出口及更大
网络配置
运行在局域网或政务网内的视频服务器可用的带宽取决于既有的网路方案例如新的校园网或政务网通常是千兆网络则可以支撑 1000 以上的并发。
如果是运行在开放的互联网上采用的是云主机在选用云主机网络带宽时不要选用按固定带宽付费要选择按流量付费这样会更经济。
在并发量很大时如超过 500通常要使用集群或 CDN 技术方案华为云、阿里云都有视频 CDN 加速技术可以通过购买流量包来提高并发能力降低使用费用。
流媒体服务配置
流媒体服务器软件是搭建视频网站平台和各类在线视频应用系统的基础支撑系统实现将视频存储、视频转码、视频播出、协议复用、终端适配、大并发播出等的工作集中处理这样您在搭建视频网站时就可以只关注业务细节而不用再去处理与视频相关的诸多技术细节从而实现提高项目实施效率、降低项目实施风险的目标。
播放器配置
播放器要根据播放终端来选用对于标准的 H5 网页如微信页面、公众号内嵌页面、开放互联网上的网站可使用标准的 video 标签来播放视频。视频文件放到流媒体服务器上后经转码后输出播出地址将视频地址赋值给 video 标签即可。
video 标签的布局、控制等细节参考相关教程就可以前端工程师和网页美工可以搞定。
尽管 Flash 播放器在很多主流浏览器上已经不再支持使用但对于一些传统单位内网的办公机器依然在使用 IE 浏览器这时候依然需要使用 Flash 播放器因此在有些情况下还是需要兼容之前版本 IE 的。NTV Media Server G3 提供的集成代码可以做到这一点实现对各种浏览器的自动兼容在新型支持 H5 的浏览器上使用 video 标签在老旧 IE 上依然加载 Flash。
对于 APP 开发无论是 iOS 还是 Android都有丰富的播放流媒体视频的组件可以方便的播放 hlshttp-flv 和 rtmp 视频流。
集成对接
如果视频资源量很少增量也不多譬如只有几十个资源则不需要与流媒体服务器做开发集成只要把流媒体服务器提供过的视频播放地址交给网页制作人员使用即可。
对于业务较为丰富的应用如视频资源较多且经常动态增减则需要有完整的业务平台支撑需要实现视频资源自动化发布这个时候需要网站业务平台与流媒体服务器做集成对接。集成过程一般使用流媒体服务器的如下接口 视频上传接口 --视频转码接口 --视频查询接口 --视频播放接口等。需要实现整个功能自动对接
技术路线
对于运营视频网站除了需要上述视频技术还需要其他技术包括以下
1后端技术即开发业务后台可使用 Java、PHP 等语言
2数据库技术可以选用 MySQLMariaDBMongoDB 等等
3前端技术开发视频展现的网站需要使用成熟的前端框架来简化开发工作同时需要美术设计人员来设计漂亮的呈现
4视频拍摄和编辑对于要求较高的宣传类、教育类、科研类视频应用则需要有专业的摄影和视频编辑
参考文章
搭建视频网站的技术实现 - 知乎 (zhihu.com)
基于NodeJS Express框架开发的VIP视频网站项目及源码分享 - 知乎 (zhihu.com)
搭建在线视频网站怎么弄? - 知乎 (zhihu.com)
python - You may need to add u’127.0.0.1’ to ALLOWED_HOSTS - Stack Overflow 本文由博客一文多发平台 OpenWrite 发布