m6-第11周作业

部署网站并挂载nfs

(1)部署dedecms(www网站),discuz(bbs网站), wordpress(blog网站)

1.下载
分别下载安装包文件
[root@web02 ~]# cd /home/oldboy/tools/
wget http://updatenew.dedecms.com/base‐v57/package/DedeCMS‐V5.7‐UTF8‐SP2.tar.gz
wget http://download.comsenz.com/DiscuzX/2.5/Discuz_X2.5_SC_UTF8.zip
wget https://cn.wordpress.org/wordpress‐4.9.4‐zh_CN.tar.gz
2.解压安装
分别解压下载解压安装包,移动文件到对应站点目录即可
这里以www站点安装包解压移动为例,其他站点原理一样
[root@web02 tools]# tar xf DedeCMS‐V5.7‐UTF8‐SP2.tar.gz
[root@web02 tools]# cd DedeCMS‐V5.7‐UTF8‐SP2
[root@web02 DedeCMS‐V5.7‐UTF8‐SP2]# mv uploads/*
/application/nginx/html/www/
3.修改权限
让html下的www blog bbs 站点目录的用户及组都是 www 用户
[root@web02 tools]#chown ‐R www.www /application/nginx/html
4.编辑配置文件
各个站点的配置文件及站点目录
[root@web02 tools]#cat /application/nginx/conf/extra/www.conf
blog.conf bbs.conf
server {
        listen 80;
        server_name www.lewen.com ;
        root html/www;
        index index.php index.html index.htm;
        location ~ .*\.(php|php5)?$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi.conf;
        }
        access_log logs/access_www.log main;
}
server {
        listen 80;
        server_name blog.lewen.com ;
        root html/blog;
        index index.php index.html index.htm;
        location ~ .*\.(php|php5)?$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi.conf;
        }
        access_log logs/access_blog.log main;
}
server {
        listen 80;
        server_name bbs.lewen.com ;
        root html/bbs;
        index index.php index.html index.htm;
        location ~ .*\.(php|php5)?$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi.conf;
        }
        access_log logs/access_bbs.log main;
}
5.平滑重启服务
/application/nginx/sbin/nginx ‐t
/application/nginx/sbin/nginx ‐s reload
6.创建数据库及用户名
在浏览器中,站点后续安装需要用到,记住数据库名,用户名及密码,后面对应填入即
可
create database wordpress;
grant all on wordpress.* to 'wordpress'@'172.16.1.0/255.255.255.0'
identified by '123456';
create database wwwcms;
grant all on wwwcms.* to 'wwwcms'@'172.16.1.0/255.255.255.0'
identified by '123456';
create database bbsdis;
grant all on bbsdis.* to 'bbsdis'@'172.16.1.0/255.255.255.0'
identified by '123456';
7.浏览器站点后续安装完善
这里以浏览器中完善安装www站点为例。bbs站点的浏览器中完善原理相同。

(2)并把用户上传的目录挂载到nfs01的/data/www /data/bbs /data/blog上

nfs服务器前面已经安装配置好,这里不再赘述,主要列出关键的步骤
1.创建共享目录
[root@nfs01 data]# mkdir /data/{www,bbs,blog}
 [root@nfs01 data]# tree /data
 /data
 ├── bbs
 ├── blog
 └── www
 2.编辑配置文件
[root@nfs01 data]# vim /etc/exports
 #share to 172.16.1.0/24
 /data/www
 172.16.1.0/24(rw,sync,all_squash,anonuid=65534,anongid=65534)
 /data/blog
 172.16.1.0/24(rw,sync,all_squash,anonuid=65534,anongid=65534)
 /data/bbs
 172.16.1.0/24(rw,sync,all_squash,anonuid=65534,anongid=65534)
 3.平滑重启
[root@nfs01 data]# /etc/init.d/nfs reload

4.查看
[root@nfs01 data]# showmount ‐e 172.16.1.31
 Export list for 172.16.1.31:
 /data/bbs  172.16.1.0/24
 /data/blog 172.16.1.0/24
 /data/www  172.16.1.0/24
5.客户端
5.1 安装软件
yum install nfs‐utils rpcbind ‐y
 /etc/init.d/rpcbind start
 chkconfig rpcbind on
 chkconfig nfs off
 5.2 创建上传目录
[root@web01 ~]# tree /upload/
 /upload/
 ├── bbs
 ├── blog
 └── www
 5.3 客户端查看nfs服务器分享信息
[root@web01 ~]# showmount ‐e 172.16.1.31
 Export list for 172.16.1.31:
 /data/bbs  172.16.1.0/24
 /data/blog 172.16.1.0/24
 /data/www  172.16.1.0/24
 5.4 挂载目录
[root@web01 ~]# for name in www bbs blog;do mount ‐t nfs ‐o
 nosuid,noexec,nodev,noatime,nodiratime,rsize=131072,wsize=131072
 172.16.1.31:/data/$name /upload/$name;done
 5.5 查看
[root@web01 ~]# df ‐h
 Filesystem            Size  Used Avail Use% Mounted on
 /dev/sda3             8.6G  4.1G  4.1G  50% /
 tmpfs                 491M     0  491M   0% /dev/shm
 /dev/sda1             190M   27M  154M  15% /boot
 172.16.1.31:/data/www
                       8.6G  1.2G  7.0G  15% /upload/www
 172.16.1.31:/data/bbs
                       8.6G  1.2G  7.0G  15% /upload/bbs
 172.16.1.31:/data/blog
                      8.6G  1.2G  7.0G  15% /upload/blog

6.测试
web客户端
[root@web01 www]# cd /upload/www
 [root@web01 www]# touch www.txt
 [root@web01 www]# ll
 total 0
‐rw‐r‐‐r‐‐. 1 nfsnobody nfsnobody 0 Sep  6 21:18 www.txt
 nfs服务器端查看
[root@nfs01 data]# ll /data/www/
 total 0
‐rw‐r‐‐r‐‐. 1 nfsnobody nfsnobody 0 Sep  6 21:18 www.txt
至此全部置完成

 

负载均衡与高可用搭建

2.在题目1基础上完成负载均衡及高可用的搭建并测试。

搭建全网备份服务器备份所有的配置文件和数据库的数据及存储的数据。

给出操作步骤

 

(1)负载均衡及高可用的搭建

1.负载均衡服务器lb01(主)配置 lb02(备)配置同理

nginx 配置文件

[root@lb01 conf]# cat /application/nginx/conf/nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    upstream server_pools {
         server 10.0.0.7:80  weight=1;
         server 10.0.0.8:80  weight=1;
    }
    server {
       listen       80;
       server_name  bbs.lewen.com;
       location / {
        proxy_pass http://server_pools;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
        }
    }
    server {
        listen       80;
        server_name  www.lewen.com;
        location / {
        proxy_pass http://server_pools;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
        }
    }
    server {
        listen       80;
        server_name  blog.lewen.com;
        location / {
        proxy_pass http://server_pools;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
        }
    }
}



2.  lb01  keepalived 配置文件
lb02 需要将state MASTER 改为state BACKUP 其他相同

[root@lb01 conf]# cat /etc/keepalived/keepalived.conf
global_defs {
   router_id LB01
}

vrrp_script check_lb {
    script "/server/scripts/check_lb.sh"
    interval 2
    weight 2
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.0.0.3/24 dev eth0 label eth0:1
    }
    track_script {
        check_lb
    }


}

2.1 检查lb服务器nginx状态的脚本

[root@lb01 conf]# cat /server/scripts/check_lb.sh
#!/bin/bash
if [ `ps -ef |grep nginx|grep -v grep|wc -l` -eq 0 ];
then
   /etc/init.d/keepalived stop
fi


3.平滑重启服务

[root@lb01 conf]# nginx -t
nginx: the configuration file /application/nginx-1.14.0//conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.14.0//conf/nginx.conf test is successful
[root@lb01 conf]# nginx -s reload
[root@lb01 conf]# /etc/init.d/keepalived restart
Stopping keepalived:                                       [  OK  ]
Starting keepalived:                                       [  OK  ]

4.查看
[root@lb01 conf]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:ca:26:c4 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.5/24 brd 10.0.0.255 scope global eth0
    inet 10.0.0.3/24 scope global secondary eth0:1
    inet6 fe80::20c:29ff:feca:26c4/64 scope link
       valid_lft forever preferred_lft forever

[root@lb02 conf]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:ca:e7:7f brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.6/24 brd 10.0.0.255 scope global eth0
    inet6 fe80::20c:29ff:feca:e77f/64 scope link
       valid_lft forever preferred_lft forever

4.1 测试负载均衡
[root@lb01 conf]# killall nginx
[root@lb01 conf]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:ca:26:c4 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.5/24 brd 10.0.0.255 scope global eth0
    inet6 fe80::20c:29ff:feca:26c4/64 scope link
       valid_lft forever preferred_lft forever

[root@lb02 conf]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:ca:e7:7f brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.6/24 brd 10.0.0.255 scope global eth0
    inet 10.0.0.3/24 scope global secondary eth0:1
    inet6 fe80::20c:29ff:feca:e77f/64 scope link
       valid_lft forever preferred_lft forever

vip 已经飘到lb02    keepalived 安装配置成功


5.添加Windows本地hosts解析
10.0.0.3 www.lewen.com blog.lewen.com bbs.lewen.com status.lewen.com


6.测试连接
    www.lewen.com
    blog.lewen.com
    bbs.lewen.com    都能正常访问


6.1 测试当web01挂掉后,看能不能访问站点
    关掉web01的nginx所有服务
    发现此时再访问时,负载均衡已经到web 02
    见6.1图


6.2 访问  www.lewen.com
    居然报错了,不应该啊。
    为什么访问    oldboy.html 可以,而主站点www.lewen.com就不行    见6.2 a 图
    经过查看日志,检查服务,发现是web02的php服务没有开启

    经过检查,再次访问www.lewen.com

    已经可以正常访问了 见 6.2 b 图

    到此负载均衡安装完毕

image

(2)搭建全网备份服务器备份文件和数据库的数据及存储的数据

1.backup服务器搭建

[root@backup ~]# rpm -qa rsync
rsync-3.0.6-12.el6.x86_64
[root@backup ~]# mkdir /wwwbackup
[root@backup ~]# useradd -s /sbin/nologin -M rsync

[root@backup ~]# chown -R rsync.rsync /wwwbackup
[root@backup ~]# ll /wwwbackup -d
drwxr-xr-x. 2 rsync rsync 4096 Sep  7 15:06 /wwwbackup
[root@backup ~]# echo 'rsync_backup:123456' >/etc/rsync.password
[root@backup ~]# cat /etc/rsync.password
rsync_backup:123456
[root@backup ~]# chmod 600 /etc/rsync.password
[root@backup ~]# ll /etc/rsync.password
-rw------- 1 root root 20 Jan 18 23:32 /etc/rsync.password



[root@backup ~]# vim /etc/rsyncd.conf
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password

[wwwbackup]
path = /wwwbackup/



2.客户端

2.1 备份脚本的书写
[root@web01 mysql]# vim /server/scripts/bak-www.sh
#!/bin/bash
#desc: backup html && conf
Date=$(date +%F_%w)
#backup file && conf
cd / && \
tar zchf /backup/web01-${Date}.tar.gz /application/nginx/html/ /application/nginx/conf/ /application/mysql/data /etc/rc.local /var/spool/cron/
#make md5sum
cd /backup/ && \
md5sum web01-${Date}.tar.gz >check.log
#rsync file to backup
rsync -az /backup/ rsync_backup@172.16.1.41::wwwbackup --password-file=/etc/rsync.password
#delete 7 day ago
find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm -i /backup/{}

2.2定时任务

[root@web01 mysql]# crontab -e
#backup conf html lewen 2018-07-25
00 0 * * *  /bin/sh /server/scripts/bak-www.sh >/dev/null 2>&1


3.backup服务器检查

3.1 backup 检查脚本

[root@backup backup]# cat /server/scripts/check_www_bak.sh
#!/bin/bash
#del 180 day file keep every 6
find /wwwbackup/ -type f -name "*.tar.gz" -mtime +180 ! -name "*_6.tar.gz"|xargs rm
#check
cd /backup/ && md5sum -c check.log >/wwwbackup/result.log
if [ $? -ne 0 ];then
mail -s "md5sum wrong" fadewalk@qq.com </wwwbackup/result.log
fi

3.2 backup 定时任务

[root@backup ~]# crontab -e
#check & send result lewen
* * * * * /bin/bash /server/scripts/check_www_bak.sh >/dev/null 2>&1


4 测试


4.1 web服务器端
[root@web01 mysql]# ll /backup/
-rw-r--r--. 1 root root       60 Sep  7 15:44 check.log
-rw-r--r--. 1 root root 29394487 Sep  7 15:44 web01-2018-09-07_5.tar.gz



4.2 backup备份服务器端
[root@backup ~]# ll /wwwbackup/
-rw-r--r--. 1 rsync rsync       60 Sep  7 15:44 check.log
-rw-r--r--. 1 rsync rsync 29394487 Sep  7 15:44 web01-2018-09-07_5.tar.gz



到此全部结束
posted @ 2019-03-14 09:27  元贞  阅读(96)  评论(0)    收藏  举报