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
本文来自博客园,作者:元贞,转载请注明原文链接:https://www.cnblogs.com/yuleicoder/articles/10528721.html
浙公网安备 33010602011771号