作业
1.恢复快照
2.搭建两台LNMP
3.数据库独立
4.文件共享
5.文件实时备份
6.代理一台机器
一 。环境准备
二 。需要做的步骤
1.首先搭建两台LNMP架构的服务器(web01的部署)
1)先安装nginx服务
2)统一用户和用户组
3)安装php解释器环境
4) 修改nginx和php启动用户
5)修改nginx和php上传文件大小
6)启动nginx服务和php服务并加入开机自启
7)检查启动
8)创建博客项目目录
9)上传博客项目代码并授权
10)配置网站站点
11)重启nginx服务并测试网站
12)web02 安装nginx服务和php解释器
13)创建统一用户和组
14)修改nginx启动用户和上传大小
15)修改php启动用户和组以及上传文件大小
16)推送blog项目代码和nginx站点配置
17)启动nginx和php并加入到开机自启
18) 重启nginx服务并测试网站
2.数据库独立(db01服务器)
1) 安装数据库mariadb
2)启动数据库检查是否启动并加入到开机自启
3)修改数据库账号密码
4)创建数据库给blog项目使用
5)创建远程账号允许链接数据库
3.文件共享(nfs服务器配置)
0)下载nfs服务
1)创建目录供挂载使用
2)设置/etc/exports配置允许其他服务器挂载
3)创建统一用户
4)启动nfs服务
5)配置web01和web02挂载nfs服务器
4.文件实时备份(backup服务器)
1)创建备份数据目录/data并授权
2) 创建统一用户和组
3)下载rsync服务
4) 配置rsync项目
5)启动rsync服务并加入到开机自启
6) 配置nfs服务端
7)下载rsync和inodetify
8)创建统一用户和组
9)安装sersync服务
10)配置sersync服务
11)启动sersync服务
5.代理一台机器(id01服务器)
1)下载nginx服务
2) 配置nginx服务站点
3)启动nginx服务
三。开始实战搭建
1.首先搭建两台LNMP架构的服务器(web01的部署)
1)先安装nginx服务
[root@web01 ~]# yum install -y nginx
2)统一用户和用户组
[root@web01 ~]# groupadd www -g 666
[root@web01 ~]# useradd www -u 666 -g 666
3)安装php解释器环境
# 上传php服务文件
[root@web01 /package]# rz
[root@web01 /package]# ll
total 19424
-rw-r--r-- 1 root root 19889622 Aug 26 10:08 php.tar.gz
# 解压并安装php服务
[root@web01 /package]# tar xf php.tar.gz
[root@web01 /package]# yum localinstall -y *.rpm
4) 修改nginx和php启动用户
[root@web01 ~]# vim /etc/nginx/nginx.conf
user www;
[root@web01 ~]# vim /etc/php-fpm.d/www.conf
user = www
group = www
5)修改nginx和php上传文件大小
[root@web01 ~]# vim /etc/php.ini
upload_max_filesize = 200M
post_max_size = 200
[root@web01 ~]# vim /etc/nginx/nginx.conf
client_max_body_size 200M;
6)启动nginx服务和php服务并加入开机自启
[root@web01 ~]# systemctl start nginx
[root@web01 ~]# systemctl start php-fpm.service
[root@web01 ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
[root@web01 ~]# systemctl enable php-fpm.service
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
7)检查启动
[root@web01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 7977/php-fpm: maste
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 5514/rpcbind
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7928/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6798/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 6949/master
tcp6 0 0 :::111 :::* LISTEN 5514/rpcbind
tcp6 0 0 :::22 :::* LISTEN 6798/sshd
tcp6 0 0 ::1:25 :::* LISTEN 6949/master
8)创建博客项目目录
[root@web01 ~]# mkdir /code/blog -p
9)上传博客项目代码并授权
[root@web01 /code/blog]# rz
[root@web01 /code/blog]# ll
total 4
drwxr-xr-x 5 1006 1006 4096 Jan 11 2019 blog
[root@web01 /code/blog]# chown -R www.www /code/
[root@web01 /code/blog]#
10)配置网站站点
[root@web01 /etc/nginx]# vim conf.d/linux.blog.com.conf
systemctl restart nginx
[root@web01 /code/blog]# vim /etc/nginx/conf.d/linux.blog.com.conf
server {
listen 80;
server_name linux.blog.com;
root /code/blog;
location / {
index index.php;
}
location ~* .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
11)重启nginx服务并测试网站
# 配置windows hosts文件
c:/windows/system32/drivers/etc/hosts
10.0.0.7 linux.blog.com
12)web02 安装nginx服务和php解释器
[root@web02 ~]# yum install -y nginx
# 上传php服务文件
[root@web02 /package]# rz
[root@web02 /package]# ll
total 19424
-rw-r--r-- 1 root root 19889622 Aug 26 10:08 php.tar.gz
# 解压并安装php服务
[root@web02 /package]# tar xf php.tar.gz
[root@web02 /package]# yum localinstall -y *.rpm
13)创建统一用户和组
[root@web02 ~]# groupadd www -g 666
[root@web02 ~]# useradd www -u 666 -g 666
14)修改nginx启动用户和上传大小
[root@web02 ~]# vim /etc/nginx/nginx.conf
user www;
client_max_body_size 200M;
15)修改php启动用户和组以及上传文件大小
[root@web02 ~]# vim /etc/php-fpm.d/www.conf
user = www
group = www
[root@web02 ~]# vim /etc/php.ini
upload_max_filesize = 200M
post_max_size = 200M
16)推送blog项目代码和nginx站点配置
# 打包blog项目和nginx配置
[root@web01 ~]# tar czPf code.tar.gz /code
[root@web01 ~]# tar czPf nginx.tar.gz /etc/nginx
# 推送到web02
[root@web01 ~]# tar czPf code.tar.gz /code
[root@web01 ~]# tar czPf ngnx.tar.gz /etc/nginx
[root@web01 ~]# scp -r code.tar.gz ngnx.tar.gz 172.16.1.8:/root/
# web02切换到跟目录解压包
[root@web02 ~]# cd /
[root@web02 /]# tar xf /root/code.tar.gz
[root@web02 /]# tar xf /root/nginx.tar.gz
17)启动nginx和php并加入到开机自启
[root@web02 /]# systemctl start php-fpm.service
[root@web02 /]# systemctl enable php-fpm.service
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
[root@web02 /]# systemctl start nginx
[root@web02 /]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
- 配置windows的hosts文件测试网站
# 配置windows hosts文件
c:/windows/system32/drivers/etc/hosts
10.0.0.8 linux.blog.com
2.数据库独立(db01服务器)
1) 安装数据库mariadb
[root@db01 ~]# yum install -y mariadb-server
2)启动数据库检查是否启动并加入到开机自启
[root@db01 ~]# systemctl start mariadb.service
[root@db01 ~]# systemctl enable mariadb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@db01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 17505/mysqld
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 6350/rpcbind
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6790/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 6875/master
tcp6 0 0 :::111 :::* LISTEN 6350/rpcbind
tcp6 0 0 :::22 :::* LISTEN 6790/sshd
tcp6 0 0 ::1:25 :::* LISTEN 6875/master
[root@db01 ~]#
3)修改数据库账号密码
[root@db01 ~]# mysqladmin -uroot password '123456'
4)创建数据库给blog项目使用
[root@db01 ~]# mysql -uroot -p123456
MariaDB [(none)]> create database blog;
5)创建远程账号允许链接数据库
MariaDB [(none)]> grant all on blog.* to blog@'172.16.1.%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
3.文件共享(nfs服务器配置)
0)下载nfs服务
[root@nfs ~]# yum install -y nfs-utils
1)创建目录供挂载使用
[root@nfs ~]# mkdir /data
2)设置/etc/exports配置允许其他服务器挂载
[root@nfs ~]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
3)创建统一用户
[root@nfs ~]# groupadd www -g 666
[root@nfs ~]# useradd www -u 666 -g 666
[root@nfs ~]# chown -R www.www /data/
4)启动nfs服务
[root@nfs ~]# systemctl start nfs-server.service
[root@nfs ~]# systemctl enable nfs-server.service
# 检查配置能否被链接
[root@nfs ~]# cat /var/lib/nfs/etab
/data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw,secure,root_squash,all_squash)
5)配置web01和web02挂载nfs服务器
# 检查能否链接
[root@web02 /]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
# web02挂载nfs服务器
[root@web02 /code/blog/wp-content]# mount -t nfs 172.16.1.31:/data ./uploads
[root@web02 /code/blog/wp-content]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.5G 18G 8% /
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.5M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 497M 120M 378M 25% /boot
tmpfs 199M 0 199M 0% /run/user/0
172.16.1.31:/data 19G 1.3G 18G 7% /code/blog/wp-content/uploads
# web01挂载nfs服务器
[root@web01 /code/blog/wp-content]# mount -t nfs 172.16.1.31:/data ./uploads/
[root@web01 /code/blog/wp-content]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.6G 17G 9% /
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.5M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 497M 120M 378M 25% /boot
tmpfs 199M 0 199M 0% /run/user/0
172.16.1.31:/data 19G 1.3G 18G 7% /code/blog/wp-content/uploads
4.文件实时备份(backup服务器)
1)创建备份数据目录/data
[root@backup ~]# mkdir /data
[root@backup ~]#
2) 创建统一用户和组
[root@backup ~]# groupadd www -g 666
[root@backup ~]# useradd www -u 666 -g 666
# 授权
[root@backup ~]# chown -R www.www /data
[root@backup ~]#
3)下载rsync服务
[root@backup ~]# yum install -y rsync
4) 配置rsync项目
[root@backup ~]# vim /etc/rsyncd.conf
uid = www
gid = www
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.password
log file = /var/log/rsyncd.log
[data]
comment = welcome to oldboyedu backup!
path = /data
# 创建密码文件并授权600
[root@backup ~]# vim /etc/rsync.password
rsync_backup:123456
[root@backup ~]# chmod 600 /etc/rsync.password
[root@backup ~]#
5)启动rsync服务并加入到开机自启
[root@backup ~]# systemctl start rsyncd
[root@backup ~]#
6) 配置nfs服务端
# 下载rsync和实时监控inotify-tools
[root@nfs ~]# yum install -y rsync inotify-tools
7)下载rsync和inodetify
8)创建统一用户和组
9)安装sersync服务
[root@nfs ~]# rz
[root@nfs ~]# ll
total 712
-rw-r--r-- 1 root root 727290 Aug 14 20:01 sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@nfs ~]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local/
[root@nfs /usr/local]# mv GNU-Linux-x86/ ./sersync
10)配置sersync服务
[root@nfs /usr/local/sersync]# vim confxml.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
<host hostip="localhost" port="8008"></host>
<debug start="false"/>
<fileSystem xfs="false"/>
<filter start="false">
<exclude expression="(.*).svn"></exclude>
<exclude expression="(.*).gz"></exclude>
<exclude expression="^info/*"></exclude>
<exclude expression="^static/*"></exclude>
</filter>
<inotify>
<createFile start="true"/>
<closeWrite start="true"/>
<moveFrom start="true"/>
<moveTo start="true"/>
<attrib start="true"/>
<modify start="true"/>
</inotify>
<sersync>
<localpath watch="/data">
<remote ip="172.16.1.41" name="data"/>
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>
<rsync>
<commonParams params="-artuz"/>
<auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
<crontab start="false" schedule="600"><!--600mins-->
<crontabfilter start="false">
<exclude expression="*.php"></exclude>
<exclude expression="info/*"></exclude>
</crontabfilter>
</crontab>
# 创建密码文件并授权
[root@nfs /usr/local/sersync]# vim /etc/rsync.password
123456
[root@nfs /usr/local/sersync]# chmod 600 /etc/rsync.password
11)启动sersync服务
[root@nfs /data]# /usr/local/sersync/sersync2 -dro /usr/local/sersync/confxml.xml
5.代理一台机器(id01服务器)
1)下载nginx服务
[root@id01 /etc/nginx/conf.d]# yum install -y nginx
2) 配置nginx服务站点
[root@id01 /etc/nginx/conf.d]# vim linux.blog.com.conf
server {
listen 80;
server_name linux.blog.com;
location / {
proxy_pass http://172.16.1.7:80;
proxy_set_header Host $http_host;
}
3)启动nginx服务
[root@id01 /etc/nginx/conf.d]# systemctl start nginx