ASP站长网日均百万PV的网站站,费用也不低,并且CDN节点有时会出问题,还 需要每次的更改后刷新CDN,不太方便。
改造后期望:
配置独立服务器,升级带宽,更改环境以支持PHP的程序,实现本地化的广告投放功能,以扩展自有化。
PV(Page View,页面浏览量)即点击量,通常意义上说PV的多少是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标。pv的解释是这样的:一个访问者在24小时(0点-23点)内到底看了网站的几个页面。需要注意的是:同一个人浏览网站的同一个页面,不重复计算pv量,点击100次页只算1次。
案例概述:本案例设计采用四层模型实现,主要分为前端反向代理层,web层,数据库缓存层和数据库层。前端反向代理词采用主备模式,web层采用群集模式,数据库缓存层采用主备模式,数据层采用主从模式
具体实现:
下面将记录实现过程的点滴,期间得益于互联网上许多资料的帮助,在此一并表示感谢。此文章力争做到细致,清晰,希望对后来者起到一定帮助作用。
这里我为了节省资源,将前端代理层,数据库缓存层,数据库层部署在两台虚拟机上,将web层分别部署在两台虚拟机上。
拓扑图如下:
CentOS 7下搭建百万PV网站架构详述
实验环境如下:
CentOS 7下搭建百万PV网站架构详述
------------------------------------------分割线------------------------------------------
本文的源码包可从以下信息得到下载:
点击这个http://www.linuxidc.com/Linux/2013-12/93755.htm 链接去关注 Linux公社官方微信,关注后回复数字155206。即可得到网友的分享密码。
如果取消关注Linux公社公众号,即使再次关注,也将无法提供本服务!
链接: https://pan.baidu.com/s/1SK5Yv0bEPkzDjATqC67RZg 密码:获得见上面的方法,地址失效请在下面留言。
------------------------------------------分割线------------------------------------------
具体部署如下:
一 在前面两台主从服务器上安装nginx和keepalived
rpm -ivh http://nginx.org/packages/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在同一网段
}
}
在指定的目录下创建脚本
mkdir /opt/shell
vim /opt/shell/nginx.sh
#!/bin/bash
k=`ps -ef | grep keepalived | grep -v grep | wc -l`
if [ $k -gt 0 ];then
/bin/systemctl start nginx.service
else
/bin/systemctl stop nginx.service
fi #该脚本作用是在启动keepalived服务时就可以直接启动nginx服务
chmod +x /opt/shell/nginx.sh #赋予脚本执行权限
配置nginx反向代理:
vim /etc/nginx/nginx.conf #配置nginx的配置文件
upstream tomcat_pool {
server 192.168.199.131:8080;
server 192.168.199.132:8080; #定义后端的两台Tomcat地址
ip_hash; #会话稳固功能,否则无法通过vip地址登录
}
server {
listen 80;
server_name 192.168.199.188; #虚拟IP
location / {
proxy_pass http://tomcat_pool;
proxy_set_header X-Real-IP $remote_addr;
}
}
nginx -t -c /etc/nginx/nginx.conf #测试配置文件语法
从服务器的配置和主服务器的配置基本相同,唯一不同地方在于keepalived的配置文件,在上方都有说明,这里就不再演示
systemctl start keepalived.service #开启主服务器的keepalived服务
netstat -ntap | grep nginx #查看nginx是否开启,要想关闭nginx,需要先关闭keepalived
CentOS 7下搭建百万PV网站架构详述
systemctl start keepalived.service #开启从服务器的keepalived服务
netstat -ntap | grep nginx #查看nginx是否开启,要想关闭nginx,需要先关闭keepalived,注意第二台的nginx启动可能会有些慢,如果nginx端口一致启动不了就去检查keepalived的配置文件和自己定义的脚本,大部分错误都是这两个地方
CentOS 7下搭建百万PV网站架构详述
二 部署两台Tomcat节点服务器
解压所需要的两个软件包
tar zxvf jdk-8u144-linux-x64.tar.gz -C /opt #jdk是一个java运行环境,要想安装tomcat必须先安装jdk
tar zxvf apache-tomcat-8.5.23.tar.gz -C /opt
mv jdk1.8.0_144/ /usr/local/java
mv apache-tomcat-8.5.23/ /usr/local/tomcat8 #为了方便使用jdk与Tomcat,我将它们重命名到系统目录下vim /etc/profile #添加环境变量
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export PATH=$PATH:/usr/local/java/bin
export CLASSPATH=./:/usr/local/java/lib:/usr/local/java/jre/lib
大型站长资讯类网站! https://www.0792zz.cn