怎么搭建短视频系统?全套负载均衡方案

短视频系统跟直播系统有一样的特点,面向的用户群体数量较大,聚集时间点集中。比如午饭时间,晚上休闲时间。所以做好系统的负载特别重要,既能提高系统的稳定性和可用性,从侧面来讲也能提高用户的体验和用户留存。

负载均衡的表述性解释咱不再说明,自行谷歌或百度即可。这里主要介绍两种负载均衡的方案。

方案一:使用运营商成熟的方案,比如阿里云的负载均衡SLB,腾讯云的负载均衡CLB。这些成熟的方案稳定性高,运维成本低。只需要日常维护后端服务即可,不过除非你是一定量级的大客户,否则无法个性定制。

方案二:自建负载均衡,该方案需要有基础的运维能力。需要运维人员持续跟踪,可以自由扩展定制。前期数量级小的话,建议走这种方案。后期数量级大的话,还是走方案一比较稳妥一些。

这里介绍下方案二自建负载均衡的方式。按照最小方案来举例说明,均用1核1G5M带宽的服务器。注意:后期上线需要根据自身业务的情况进行配置扩展,这里是做演示举例用最低配置即可。

一、首先需要准备相关资料,如下:

1. 系统域名

2. Nginx负载服务器  1台(用于前台分发)。

3. Web 后端服务器  2台(配置PHP环境,放置管理后台和接口)

4. Mysql 数据库服务器 1台(配置数据库)

5. Redis 缓存服务器  1台(配置缓存)

6. Session 共享服务器 1台(共享数据Session)

7. 以上服务器必须存在一个内网中,响应速度等体验会好一些。

二、其次将各个服务器按照原始系统的搭建方式进行依次搭建。这里重点说明下Nginx负载服务器和Session缓存服务器的搭建和配置方式。

1.Nginx负载服务器的搭建,假设入口域名是yunbaozhibo.com

1.1安装pcre(依次操作)

获取pcre编译安装包,在在pcre.org/上可以获取当前最新的版本。

解压缩pcre-xx.tar.gz包

进入解压缩目录,执行./configure

执行安装make & make install

1.2 安装openssl(依次操作)

获取openssl编译安装包,在openssl.org/source/上可以获取当前最新的版本。

解压缩openssl-xx.tar.gz包

进入解压缩目录,执行./config

执行安装make & make install

1.3安装zlib(依次操作)

获取zlib编译安装包, zlib.net/上可以获取当前最新的版本

解压缩zlibxxx.zip包。注:这里的tar包应该是有问题,没法命令解压,只能换zip包

进入解压缩目录,执行./configure

执行安装make & make install

1.4安装Nginx

获取nginx,在nginx.org/en/download.html上可以获取当前最新的版本

解压缩nginx-xx.tar.gz包

进入解压缩目录,执行./configure  这里会自动关联上边的三个组件

执行安装make & make install

1.5配置相关信息

安装完成后,nginx在/usr/local/nginx中, nginx.conf在该文件下的conf中 nginx启动在sbin中。

配置nginx.conf文件

在http{}中的server{}前添加

upstream    yunbaozhibo.com{

            ip_hash;   #第一次配置负载用ip_hash来处理session,后期修改为session复制

            server  192.168.7.11:80; #这里是web服务器的内网ip

            server   192.168.7.22:80;  #这里是web服务器的内网ip

            #这里最好加一个简单的后备server,web全挂后跳转到他,友情提示下服务器正在维护。

}

在http{}中的server{}中的location /{}添加

proxy_pass  yunbaozhibo.com;

proxy_set_header Host $host;

proxy_set_header  X-Real-IP  $remote_addr;

proxy_set_header  X_Forwarded-For $proxy_add_x_forwarded_for;

配置完后,启动nginx              /usr/local/nginx/sbin/nginx

2.Session服务器的配置,假设Session的服务器ip为192.168.7.2。Redis端口为1122

这里的Session服务器是使用Redis来缓存共享Session的。

2.1正常安装并启动Redis服务

2.2 找到web服务器中的php.ini文件,修改如下

找到;session.save_handler = files

改为session.save_habdler = redis

找到;session.save_path = “/tmp”

改为session.save_path = “tcp://192.168.7.2:1122”

howP�]k'�

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

Apache CVE-2017-7659漏洞重现及利用分析

近日,apache在其网站发布了最新的安全公告,其中涉及多个漏洞。针对CVE-2017-7659漏洞的介绍是这样的: A maliciously constru...

43560
来自专栏张善友的专栏

SQL Server 2005的负载均衡

SQL Server 2005仍然不直接地支持负载均衡——但是它为以前SQL Server版本中可用的所有负载均衡方法提供了令人激动的改善和支持。   目录 1...

225100
来自专栏自由而无用的灵魂的碎碎念

在windows server 2008 r2上安装nokia pc 套件

我下载了最新版的nokia pc套件,不过发现无法在windows server 2008 r2上安装:

11630
来自专栏淡定的博客

windows下WorkerMan实现简单的多人在线聊天

Workerman是一款纯PHP开发的开源高性能的PHP socket 服务框架。

1.1K10
来自专栏企鹅号快讯

在浏览器上,我们的隐私都是如何被泄漏的?

关键时刻,第一时间送达! 近日,两个利用隐藏登录表单收集登录信息的网络跟踪服务被彻底披露,分别是 Adthink(audienceinsights.net)和 ...

217100
来自专栏魏琼东

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 模块插件集成

      前面我们在AgileEAS.NET之插件接口IModule和AgileEAS.NET之插件运行容器中对模块插件和运行容器都做了介绍,本文我们介绍Ag...

186100
来自专栏互联网技术栈

Tair数据迁移三步走

在多机房数据迁移中,整个过程分为三个阶段:历史数据迁移阶段、redolog迁移阶段、实时复制阶段。

14530
来自专栏钟绍威的专栏

web服务器集群集群是什么?分布式是什么?集中式是什么?例子缺点

概述 集群和分布式都是从集中式进化而来的。分布式和集群会相互合作的,同时的集群和分布式。在这里重点说说集群 集群是什么? 集群能提高单位时间内处理的任务数量,提...

50690
来自专栏黑白安全

数以万计 Django 应用程序因配置错误泄露密码等敏感信息

近日,安全研究员 FábioCastro 发现 28,165 个配置错误的 Django 应用程序暴露敏感信息,其中包括密码,API 密钥以及 AWS 访问令牌...

11260
来自专栏Laoqi's Linux运维专列

Nginx为什么比Apache 高效

什么是阻塞:就是线程在执行IO操作获取数据时,这个IO可能会需要一定的时间才能等到数据返回,然后才能接着执行下面的命令。那么,此时,这个线程的等待状态我们就把它...

32360

扫码关注云+社区

领取腾讯云代金券