V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhibo2144899870
V2EX  ›  2018

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

  •  
  •   zhibo2144899870 · 2018-09-12 11:35:24 +08:00 · 1461 次点击
    这是一个创建于 2260 天前的主题,其中的信息可能已经有所发展或是发生改变。

    短视频系统跟直播系统有一样的特点,面向的用户群体数量较大,聚集时间点集中。比如午饭时间,晚上休闲时间。所以做好系统的负载特别重要,既能提高系统的稳定性和可用性,从侧面来讲也能提高用户的体验和用户留存。 负载均衡的表述性解释咱不再说明,自行谷歌或百度即可。这里主要介绍两种负载均衡的方案。 方案一:使用运营商成熟的方案,比如阿里云的负载均衡 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 ”

    ywgx
        1
    ywgx  
       2018-09-12 13:08:47 +08:00
    哥们 Nginx 配置这段,给你缩短下

    # wget https://s.xabcloud.com/file/ctl.sh
    # chmod +x ctl.sh
    # ./ctl.sh OPENRESTY 安装
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1023 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:22 · PVG 06:22 · LAX 14:22 · JFK 17:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.