CentOS 7下搭建百万PV网站架构详述

日均百万PV的网站站,费用也不低,并且CDN节点有时会出问题,还 需要每次的更改后刷新CDN,不太方便。

改造后期望:

配置独立服务器,升级带宽,更改环境以支持PHP的程序,实现本地化的广告投放功能,以扩展自有化。

PV(Page View,页面浏览量)即点击量,通常意义上说PV的多少是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标。pv的解释是这样的:一个访问者在24小时(0点-23点)内到底看了网站的几个页面。需要注意的是:同一个人浏览网站的同一个页面,不重复计算pv量,点击100次页只算1次。

案例概述:本案例设计采用四层模型实现,主要分为前端反向代理层,web层,数据库缓存层和数据库层。前端反向代理词采用主备模式,web层采用群集模式,数据库缓存层采用主备模式,数据层采用主从模式

具体实现:

下面将记录实现过程的点滴,期间得益于互联网上许多资料的帮助,在此一并表示感谢。此文章力争做到细致,清晰,希望对后来者起到一定帮助作用。

这里我为了节省资源,将前端代理层,数据库缓存层,数据库层部署在两台虚拟机上,将web层分别部署在两台虚拟机上。

拓扑图如下:

CentOS 7下搭建百万PV网站架构详述

实验环境如下:

CentOS 7下搭建百万PV网站架构详述

------------------------------------------分割线------------------------------------------

本文的源码包可从以下信息得到下载:

点击这个 链接去关注 Linux公社官方微信,关注后回复数字155206。即可得到网友的分享密码。

如果取消关注Linux公社公众号,即使再次关注,也将无法提供本服务!

链接: https://pan.baidu.com/s/1SK5Yv0bEPkzDjATqC67RZg  密码:获得见上面的方法,地址失效请在下面留言。

------------------------------------------分割线------------------------------------------

具体部署如下:
一 在前面两台主从服务器上安装nginx和keepalived
rpm -ivh CentOS/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm #

装带有nginx rpm软件包的源,主从都要做

yum install nginx keepalived -y            #使用centos默认的仓库完成的安装
vim /etc/keepalived/keepalived.conf      #配置keepalived的主配置文件
! Configuration File for keepalived
vrrp_script nginx {                      #定义函数库脚本
        script "/opt/shell/nginx.sh"      #添加脚本路径
        interval 2                    #定义每次执行该脚本的间隔为2s
}

global_defs {
  notification_email {
    acassen@firewall.loc
    failover@firewall.loc
    sysadmin@firewall.loc
  }
  notification_email_from Alexandre.Cassen@firewall.loc
  smtp_server 192.168.200.1
  smtp_connect_timeout 30
  router_id NGINX_HA          #定义该服务器的名称,从服务器要定义不同的名称好加以区分
}

vrrp_instance VI_1 {
    state MASTER              #将主服务器的角色定为MASTER,从服务器为BACKUP
    interface ens33            #将网卡接口改为ens33
    virtual_router_id 51       
    priority 100                #定义优先级,主服务器要高于从服务器
    advert_int 1
    authentication {
        auth_type PASS        #这里表示主从服务器的同步密码,保持默认即可
        auth_pass 1111
    } 
    track_script {
        Nginx              #在这里调用上面定义好的脚本,注意脚本名称一定要相同
    } 
    virtual_ipaddress {
        192.168.199.188        #定义虚拟IP,虚拟IP一定要和服务器的真实IP在同一网段
    } 

在指定的目录下创建脚本

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b80e85f0f4051af4363f7bef3fb4a169.html