网站架构,通常认为是根据客户需求分析的结果,准肯定位网站目标群体,设定网站总体架构,规划、设计网站栏目及其内容,制定网站开发流程及顺序,以最大限度地进行高效资源分配与管理的设计。其内容有程序架构,呈现架构,和信息架构三种表现。前端
PV(Page View,页面浏览量)即点击量,一般意义上说PV的多少是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标。pv的解释是这样的:一个访问者在24小时(0点-23点)内到底看了网站的几个页面。须要注意的是:同一我的浏览网站的同一个页面,不重复计算pv量,点击100次页只算1次。java
注:实线是正常状况下的数据流向链接,虚线是异常状况下的数据流向链接mysql
软件包:连接:https://pan.baidu.com/s/1YivUZgSCzpZMLPgvZ-Zobg
提取码:b5hblinux
主机 | 系统 | IP地址 | 用途 |
---|---|---|---|
master | CentOS7 | 192.168.37.128 | nginx反向代理主机、redis缓存主机、mysql数据主库 |
backup | CentOS7 | 192.168.37.130 | nginx反向代理备机、redis缓存备机、mysql数据备库 |
web 1 | CentOS7 | 192.168.37.131 | tomcat服务器 |
web 2 | CentOS7 | 192.168.37.132 | tomcat服务器 |
一、关闭防火墙、SELinuxnginx
systemctl stop firewalld.service
setenforce 0web
二、yum安装nginx、keepalived服务(主、从相同操做)redis
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/\
nginx-release-centos-7-0.el7.ngx.noarch.rpm
#安装nginx包
yum install nginx keepalived -ysql
三、修改master上keepalived配置文件数据库
vim /etc/keepalived/keepalived.confapache
! Configuration File for keepalived global_defs { router_id NGINX_HA #修改id,删除如下四行 } vrrp_instance VI_1 { state MASTER interface ens33 #修改网卡 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.37.188 #内网虚拟IP 192.168.200.188 #外网虚拟IP } }
四、修改backup上keepalived配置文件
scp /etc/keepalived/keepalived.conf root@192.168.37.130:/etc/keepalived #配置文件复制到backup
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs { router_id NGINX_HB #修改id } vrrp_instance VI_1 { state BACKUP interface ens33 virtual_router_id 51 #修改id号 priority 90 #优先级低于master advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.37.188 #内网虚拟IP 192.168.200.188 #外网虚拟IP } }
五、修改ngin反向代理(主、从操做相同)
vim /etc/nginx/nginx.conf
#gizp on upstream tomcat_pool { server 192.168.37.131:8080; #tomcat 1 server 192.168.37.132:8080; #tomcat 2 ip_hash; #稳固会话,不然没法经过vip地址登陆 } server { listen 80; server_name 192.168.37.188; #虚拟IP location / { proxy_pass http://tomcat_pool; proxy_set_header X-Real-IP $remote_addr; } }
六、开启nginx、keepalived服务
systemctl start keepalived.service
nginx -t -c /etc/nginx/nginx.conf #检查配置文件正确性
systemctl start nginx.service
一、解压java环境包、tomcat安装包
tar zxf jdk-8u144-linux-x64.tar.gz -C /usr/local
tar zxf apache-tomcat-8.5.23.tar.gz -C /usr/local
二、对解压后软件包重命名
cd /usr/local
mv apache-tomcat-8.5.23/ tomcat8
mv jdk1.8.0_144/ java
三、添加java环境变量
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
四、加载环境变量,检测java是否识别
source /etc/profile
java -version #查看版本
五、创建tomcat启动文件的软链接,使系统识别
ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup
ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/bin/tomcatdown
六、修改首页,区分两台tomcat
cd /usr/local/tomcat8/webapps/ROOT vim index.jsp this is tomcat 1 #另外一台首页为 ** this istomcat 2**
七、开启tomcat服务
cd /usr/local/tomcat8/webapps/ROOT
tomcatup
八、经过虚拟IP访问tomcat验证服务
cd /usr/local/tomcat8/conf/ vim server.xml (148行) <Context path="" docBase="SLSaleSystem" reloadable="true" debug="0"></Context> #SLSaleSystem:稍后会将此文件加入指定目录
一、yum安装mariadb(此处为了方便安装,用mariadb代替mysql);
yum install mariadb mariadb-server -y
二、开启mariadb服务
systemctl start mariadb
netstat -ntap | grep 3306
三、mariadb数据库常规安全设置
mysql_secure_installation
Enter current password for root (enter for none): 回车 #当前root密码 Set root password? [Y/n] y #密码自定 Remove anonymous users? [Y/n] n #不须要匿名用户 Disallow root login remotely? [Y/n] n #须要root远程登陆 Remove test database and access to it? [Y/n] n #不须要删除 Reload privilege tables now? [Y/n] y #从新加载表
四、导入数据库商城数据
mysql -u root -p < /opt/abc/rhel7/pv/slsaledb-2014-4-10.sql
#slsaledb-2014-4-10.sql 须要自行导入,都放在博文开始的安装包中
五、数据库中受权,使商城能够管理数据库
mysql -u root -p
MariaDB [(none)]> grant all on slsaledb.* to 'root'@'%' identified by 'abc123';
MariaDB [(none)]> flush privileges;
一、将商城项目放到指定目录
tar zxf SLSaleSystem.tar.gz -C /usr/local/tomcat8/webapps/
#SLSaleSystem.tar.gz在博文开始的安装包中
二、修改配置文件
cd /usr/local/tomcat8/webapps/SLSaleSystem/WEB-INF/classes
vim jdbc.properties
driverClassName=com.mysql.jdbc.Driver url=jdbc\:mysql\://192.168.37.188\:3306/slsaledb?useUnicode\=true&characterEncoding\=UTF-8 #改为虚拟ip uname=root password=abc123 # 修改mysql的root密码
三、重启tomcat服务,访问虚拟IP
tomcatdown
tomcatup
一、yum安装redis
yum install epel-release -y
yum install redis -y
二、主redis上修改配置文件
vim /etc/redis.conf #改下面1行 bind 0.0.0.0
三、从redis上修改配置文件
vim /etc/redis.conf bind 0.0.0.0 #slaveof <masterip> <masterport> 266行 slaveof 192.168.37.128 6379 #指向主服务器的ip和端口
四、开启redis服务
systemctl start redis.service
五、链接主redis,写入内容
redis-cli -h 192.168.37.128 -p 6379 #链接redis
192.168.37.128:6379> set name test #写入内容
192.168.37.128:6379> get name #查看内容
六、链接从redis,验证是否同步
redis-cli -h 192.168.37.130 -p 6379 #链接redis
192.168.37.130:6379> get name #能看到主服务器写入的内容"test"
七、经过虚拟IP链接redis验证
redis-cli -h 192.168.37.188 -p 6379
一、查看redis状态
redis-cli -h 192.168.37.128 info Replication
二、修改配置文件
vim /etc/redis-sentinel.conf //17行 protected-mode no #开启群集功能 //69行 sentinel monitor mymaster 192.168.71.128 6379 1 #master的地址,端口,从服务器1台 //98行 sentinel down-after-milliseconds mymaster 3000 #设置切换时间
三、开启服务(主、从都开启)
systemctl start redis-sentinel.service
四、验证主从切换
redis-cli -h 192.168.37.128 -p 26379 info Sentinel #查看群集信息
systemctl stop redis #关掉主redis
cd /usr/local/tomcat8/webapps/SLSaleSystem/WEB-INF/classes
vim applicationContext-mybatis.xml
<!--redis 配置 开始--> <constructor-arg value="192.168.37.188"/> #指向虚拟IP <constructor-arg value="6379"/>
注意:配置完重启tomcat服务
一、修改主、从mariadb配置文件
vim /etc/my.cnf
[mysqld] binlog-ignore-db=mysql,information_schema character_set_server=utf8 log_bin=mysql_bin server_id=1 #从服务器为2 log_slave_updates=true sync_binlog=1
二、开启mariadb
systemctl restart mariadb.service
三、主mariadb上受权
MariaDB [(none)]>grant replication slave on . to 'rep'@'192.168.37.%' identified by 'abc123';
MariaDB [(none)]>flush privileges;
MariaDB [(none)]>show master status;
四、从mariadb上同步
MariaDB [(none)]>change master to master_host='192.168.37.128',master_user='rep',master_password='abc123',master_log_file='mysql_bin.000001',master_log_pos=699;
MariaDB [(none)]>start slave;
MariaDB [(none)]>show slave status\G;
五、重启mariadb
systemctl restart mariadb.service