m7-第13周作业

1 在CentOS7上部署整个网站架构

安装nginx

1 编译安装Nginx
pcre perl语言兼容的正则表达式库
yum install pcre pcre-devel openssl-devel -y
 
./configure
make
make install
 
tar xf nginx-1.12.2.tar.gz
cd nginx-1.12.2
 
1.添加nginx 虚拟用户
useradd -s /sbin/nologin -M www
2.配置
./configure --user=www --group=www --prefix=/application/nginx-1.12.2 --with-http_stub_status_module --with-http_ssl_module
[root@web01 nginx-1.12.2]# echo $? 0 3.编译 make [root@web01 nginx-1.12.2]# echo $? 0 4.编译安装 make install [root@web01 nginx-1.12.2]# echo $? 0 5.创建链接 ln -s /application/nginx-1.12.2 /application/nginx ./configure --help



 web部署

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站点的浏览器中完善原理相同。

高可用Ib01,lb02的具体配置

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 图
    到此负载均衡安装完毕

ansible批量部署backup,nfs

[root@m01 playbook]# cat /etc/ansible/hosts
[rsync_server]
172.16.1.41
   
[rsync_client]
172.16.1.31
  
  
事先准备好rsyncd.conf、password等文件
[root@m01 server]# tree /server/conf/
/server/conf/
└── rsync_conf
    ├── rsync_client.password
    ├── rsyncd.conf
    └── rsync.password
   
剧本内容
[root@m01 playbook]# vim /server/playbook/rsync.yml 
- hosts:rsync_server
  tasks:
    - name: s01:install rsync
      yum: name=rsync state=installed
    - name: s02:create rsync user
      user: name=rsync state=present createhome=no shell=/sbin/nologin
    - name: s03:create backup dir
      file: dest=/backup state=directory owner=rsync group=rsync
    - name: s04:create auth file
      copy: src=/server/conf/rsync_conf/rsync.password dest=/etc/ mode=600
    - name: s05:edit rsync conf file
      copy: src=/server/conf/rsync_conf/rsyncd.conf dest=/etc/  
    - name: s06:start rsync server
      shell: rsync --daemon creates=/var/run/rsyncd.pid
   
         
- hosts: rsync_client
  tasks:
    - name: s01:install rsync
      yum: name=rsync state=installed
    - name: s02:create auth file
      copy: src=/server/conf/rsync_conf/rsync_client.password dest=/etc/rsync.password mode=600
       
       
       
 
      [root@m01 playbook]# cat nfs.yml 
- hosts: 172.16.1.31
  tasks:
    - name: s01:install nfs-utils rpcbind
      yum: name=nfs-utils,rpcbind state=installed
    - name: s02:start rpcbind
      service: name=rpcbind state=started
    - name: s02:start nfs
      service: name=nfs state=started  
    - name: s03:auto start nfs
      shell: chkconfig nfs on
    - name: s03:auto start rpcbind
      shell: chkconfig rpcbind on
    - name: s04:share to machine
      shell: echo "/data 172.16.1.0/24(rw,sync)" >> /etc/exports
    - name: s05:create data dir
      file: dest=/data state=directory owner=nfsnobody group=nfsnobody
    - name: s06:nfs reload  
      shell: /etc/init.d/nfs reload  
      
- hosts: 172.16.1.41
  tasks:
    - name: s01:install nfs-utils rpcbind
      yum: name=nfs-utils,rpcbind state=installed
    - name: s01:start rpcbind 
      service: name=rpcbind state=started
    - name: s02:auto start
      shell: chkconfig rpcbind on
    - name: s02:auto start nfs
      shell: chkconfig nfs off
    - name: s03:create nfsbackup dir
      file: dest=/nfsbackup state=directory 
    - name: s04:mount data to nfsbackup
      command: mount -t nfs 172.16.1.31:/data /nfsbackup

数据库

useradd -s /sbin/nologin mysql -M
[root@db01 ~]# mkdir /application
[root@db01 ~]# mkdir /home/oldboy/tools/ -p
[root@db01 ~]# cd /home/oldboy/tools/
 
 
wget http://mirrors.163.com/mysql/Downloads/MySQL-5.5/mysql-5.5.58-linux-glibc2.12-x86_64.tar.gz    
tar xf mysql-5.5.58-linux-glibc2.12-x86_64.tar.gz
 
 
[root@db01 tools]# mv mysql-5.5.58-linux-glibc2.12-x86_64 /application/mysql-5.5.58
[root@db01 tools]# ln -s /application/mysql-5.5.58/ /application/mysql
mkdir /application/mysql/data -p
chown -R mysql.mysql /application/mysql/data
 
 
cd /application/mysql
./scripts/mysql_install_db  --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql
 
 
chmod -R 1777 /tmp/
sed -i 's#/usr/local/#/application/#g' support-files/mysql.server
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
sed -i 's#/usr/local/#/application/#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld 
cp support-files/my-small.cnf /etc/my.cnf
/etc/init.d/mysqld start
 
 
chkconfig --add mysqld 
echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
source /etc/profile

 

Tomcat站点部署

Tomcat安装 
cd /application/tools/
# 上传软件包
 
 
安装JDK 
 
jdk==》java虚拟机(jvm) 
 
tar xf jdk-8u161-linux-x64.tar.gz -C /application/
ln -s /application/jdk1.8.0_161 /application/jdk
#
#export JAVA_HOME=/application/jdk
#export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
#export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
# 
 
sed -i.ori '$a export JAVA_HOME=/application/jdk\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile
source /etc/profile
java -version
 
2.2 安装Tomcat
 
tar xf apache-tomcat-8.0.50.tar.gz -C /application/
ln -s /application/apache-tomcat-8.0.50 /application/tomcat
 
echo 'export TOMCAT_HOME=/application/tomcat'>>/etc/profile
source /etc/profile
 
chown -R root.root /application/jdk/ /application/tomcat/
 
/application/tomcat/bin/version.sh
 
启动
 
/application/tomcat/bin/startup.sh
/application/tomcat/bin/shutdown.sh 
 
 
搭建jpress--java版本的wordpress 
 
7.1 连接db01的数据库
 
create database jpress DEFAULT CHARACTER SET utf8;
grant all on jpress.* to jpress@'172.16.1.0/255.255.255.0' identified by 'jpress';
flush privileges; 
 
7.2 部署站点代码
 
上传jpress-web-newest.war到webapps目录
会自动解压
先改名,再把它移动走。
 
mv jpress-web-newest jpress 
http://10.0.0.200:8080/jpress/install

  

posted @ 2019-03-14 10:44  元贞  阅读(197)  评论(0)    收藏  举报