一、webserver 服务器:作用是发布nginx的web项目
1、安装nginx(只下载不安装)
[root@web_server ~]# yum -y install --downloadonly --downloaddir=./soft/ nginx
2、配置一个本地的nginx仓库
[root@web_server ~]# yum -y install createrepo 用于创建本地仓库
3、使用createrepo生成仓库文件
[root@web_server ~]# createrepo ./soft/
4、soft目录中生成一个repodata目录检测soft目录中是否保存了一个repo文件
[root@web_server ~]# tree ./soft/
5、在/etc/yum.repos.d/新建一个repo文件,文件名字叫nginx
[root@web_server ~]# vim /etc/yum.repos.d/nginx.repo
6、建立缓存
[root@web_server ~]# yum clean all
[root@web_server ~]# yum makecache
7、安装nginx
[root@web_server ~]# yum -y install nginx
8、查看是否安装
[root@web_server ~]# rpm -qa | grep nginx
[root@web_server ~]# yum list installed | grep nginx
9、启动服务
[root@web_server ~]# which nginx
/usr/sbin/nginx
[root@web_server ~]# nginx
10、检测服务是否启动
[root@web_server ~]# netstat -lnput | grep nginx
[root@web_server ~]# ps -aux | grep nginx
11、远程访问
12、向web页面中添加图片和视频
(1)上传图片和视频 到 /usr/bin/nginx/html/中
(2)检测文件是否已经存在
[root@web_server ~]# ls /usr/share/nginx/html/
13、修改/usr/share/nignx/html/index.html
[root@web_server ~]# vim /usr/share/nginx/html/index.html (153行)
14、访问web服务器
15、静态文件和动态文件没有区分
静态文件:需要在客户端运行的文件,html css js img mp4 安装包不需要在服务器中解析,需要用户下载到客户端,例如html文件要求用户下载到本地内存,使用本地浏览器解析并显示
动态文件:需要服务器先进行计算,再响应给客户端的内容,例如,登录(用户使用浏览器向服务器发送登录信息账户等,服务器对用户信息进行计算,服务器访问数据库,判断是否可以登录,将计算结果生成json或者html格式的数据响应给客户端的浏览器)。
由于用户更多的访问静态文件,而动态的访问可能不是很频繁,或者说数据传输量不是很大,静态文件的流量大,动态数据流量较小,开发者不希望动态项目和动态项目部署在同一个服务器上,静态的访问静态服务,动态访问动态的服务器。
以前部署一个jsp项目就可以了,现在需要前端服务,还要部署后端服务,前端服务器加大流量,后端服务器增加CPU,更加节省资源。
nfs提供了解决方案,将静态资源单独放置在一个服务器中,nfs主要支持局域网,目前使用aliyun或者其他的云服务 oss(对象存储服务 阿里云oss永久免费的40G使用)。
16、检查是否已经安装了应用 nfs-tools rpcbind
[root@web_server ~]# rpm -qa | grep nfs
[root@web_server ~]# rpm -qa | grep rpc
17、下载安装
[root@web_server ~]# yum -y install nfs-utils.x86_64 rpcbind.x86_64
二、nfs_server
1、下载安装nfs-utils.x86_64 rpcbind.x86_64
[root@nfs_server ~]# yum -y install nfs-utils.x86_64 rpcbind.x86_64
2、编辑配置文件/etc/exposts 指定暴露的文件
(1)创建一个目录
[root@nfs_server ~]# mkdir /share
[root@nfs_server ~]# touch /share/passwd
[root@nfs_server ~]# tree /share/
/share/
└── passwd
[root@nfs_server ~]# scp root@192.168.8.142:/usr/share/nginx/html/1.jpg /share/
[root@nfs_server ~]# scp root@192.168.8.142:/usr/share/nginx/html/2.mp4 /share/
(2)修改配置文件
[root@nfs_server ~]# vim /etc/exports
(3)启动rpcbind服务,nfs服务
[root@nfs_server ~]# systemctl start rpcbind.service
[root@nfs_server ~]# systemctl start nfs
(4)查看端口占用情况(rpc服务的端口号是111)
[root@nfs_server ~]# netstat -lnput | grep 111
三、启动成功后在web_server测试
1、创建一个目录,/usr/share/nginx/html/static/这个目录用来挂载nfs服务器的数据
[root@web_server ~]# mkdir /usr/share/nginx/html/static
2、挂载nfs_server的文件
[root@web_server ~]# mount -t nfs 192.168.8.144:/share /usr/ (nfs机器的IP地址)
share/nginx/html/static/
[root@web_server ~]# ls /usr/share/nginx/html/static/ 可以看到nfs服务共享的数据,这个数据是链接,不是真实的文件,和rsync的数据不同
3、web_server服务器,修改index.html,从static目录中引用图片和视频
[root@web_server ~]# vim /usr/share/nginx/html/index.html
4、向share目录中添加数据
[root@nfs_server ~]# echo "呜呜呜呜,今天才周一" > /share/a.txt
5、在web_server中查看mount 挂载的static目录
[root@web_server ~]# ls -l /usr/share/nginx/html/static/
6、测试在static目录中添加文件,看nfs_server服务器中的文件是否会更新
[root@web_server ~]# touch /usr/share/nginx/html/static/b.txt
7、备份scp cp rsync
当nfs 的share目录中的文件发生改变的时候,备份到backupserver主机中
备份是复制一份文件,共享是获取文件链接
(1)克隆一个备份主机backuphost
(2)停用防火墙和selinux
[root@backuphost ~]# systemctl stop firewalld
[root@backuphost ~]# setenforce 0
(3)支持rsync备份同步,安装rsync,backuphost,nfs_server主机都要安装
[root@backuphost ~]# yum -y install rsync
[root@nfs_server ~]# yum -y install rsync
(4)在nfs主机上安装inotify-tools监听/share目录
[root@nfs_server ~]# yum -y install inotify-tools
(5)先同步一份到backuohost主机的tmp目录下
[root@nfs_server ~]# rsync -av /share/ root@192.168.8.141:/tmp/
(6)需要输入密码才会同步过去,为了自动化,设置免密
[root@nfs_server ~]# ssh-keygen
[root@nfs_server ~]# ssh-copy-id root@192.168.8.141 //将公钥字符串添加到对方的家目录的authorizer_key文件中,也可以使用scp将id_rsa.pub文件上传到backuphost主机,手动将文件中的·字符串复制到authorizer_key中。
[root@nfs_server ~]# rsync -av /share/ root@192.168.8.141:/tmp/
(7)backuphost主机创建/bakup
[root@backuphost ~]# mkdir /bakup
(8)nfs_server主机上创建一个脚本rn.sh
[root@nfs_server ~]# vim rn.sh
[root@nfs_server ~]# chmod +x rn.sh
[root@nfs_server ~]# nohup ./rn.sh&
[root@nfs_server ~]# touch /share/ab.txt
[root@nfs_server ~]# cat nohup.out
(8.1)在backuphost主机可以查看到备份文件
[root@backuphost ~]# cd /bakup/
[root@backuphost bakup]# ls
(9)脚本代码
#!/bin/bash
inotifywait /share -mrq -e modify,create,delete,move | while read events
do
rsync -av --delete /share/ root@192.168.8.142:/backup/
#也可以输入日志
done
四、samba文件共享
1、samba软件安装(服务器搭建)
在backuphost主机上安装samba
[root@backuphost ~]# yum -y install samba
[root@backuphost ~]# yum list installed | grep mb
2、了解samba配置文件
etc/samba/smb.conf
[global] 全局选项
workgroup = MYGROUP 定义samba服务器所在的⼯作组
server string = Samba Server Version %v smb服务的描述
log file = /var/log/samba/log.%m ⽇志⽂件
max log size = 50 ⽇志的最⼤⼤⼩KB
security = user 认证模式:share匿名|user⽤户密 码|server外部服务器⽤户密码 passdb backend = tdbsam 密码格式
load printers = yes 加载打印机
cups options = raw 打印机选项
[homes] 局部选项(共享名称)
comment = Home Directories 描述
browseable = no 隐藏共享名称
writable = yes 可读可写
[printers] 共享名称
comment = All Printers 描述
path = /var/spool/samba 本地的共享⽬录
browseable = no 隐藏
guest ok = no --> public = no 需要帐号和密码访问
writable = no --> read only =yes 不可写
printable = yes 打印选项
[share]
path = /dir1 guest ok = no
writable = yes
3、修改配置文件,实现samba共享
[root@backuphost ~]# vim /etc/samba/smb.conf
4、设置用户user01,samba认证123密码
[root@backuphost ~]# useradd user01
[root@backuphost ~]# smbpasswd -a user01
Window要访问bakup中的文件,使用user01 123
5、启动名称管理
[root@backuphost ~]# systemctl start nmb.service
[root@backuphost ~]# systemctl start smb.service
6、安装客户端
[root@web_server ~]# yum -y install samba-client
7、基于linux实现文件共享
[root@web_server ~]# smbclient -L 192.168.8.141 -U user01
[root@web_server ~]# smbclient //192.168.8.141/smb_share -U user01
8、将smb挂载到Linux系统
[root@web_server ~]# yum -y install cifs-utils
[root@web_server ~]# mkdir aaa
[root@web_server ~]# mount.cifs -o user=user01,pass=123 //192.168.8.141/smb_share ~/aaa/
[root@web_server ~]# ls -l aaa/
备份静态文件
- 克隆一个备份主机bakuphost
- 停用selinux和firewalld
- 支持rsync备份同步 安装rsync,bakuphost,nfsserver两台主机上都安装
- 在nfs主机上安装inotify-tools/share目录
- 先同步一份到bakup主机的tmp目录下
- 需要输入密码才会同步过去,为了自动化,设置免密
- Bakhost主机上创建/bakup
- Nfsserver上创建一个脚本
- 脚本代码
- 给添加x权限,执行脚本