webserver 服务器:作用是发布nginx的web项目
1、安装nginx(只下载不安装)
[root@web_server ~]# yum -y install --downloadonly --downloaddir=./soft/ nginx
2、配置一个本地的nginx仓库
[root@web_server ~]# yum -y install createrepo 用于创建本地仓库
使用createrepo生成仓库文件
[root@web_server ~]# createrepo ./soft/
3、soft目录中生成一个repodata目录检测soft目录中是否保存了一个repo文件
[root@web_server ~]# tree ./soft/
编辑
4、在/etc/yum.repos.d/新建一个repo文件,文件名字叫nginx
[root@web_server ~]# vim /etc/yum.repos.d/nginx.repo
编辑
5、建立缓存
[root@web_server ~]# yum clean all
[root@web_server ~]# yum makecache
下载nginx
启动并查看nginx
[root@localhost ~]# nginx
[root@localhost ~]# netstat -lnput | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1802/nginx: master
tcp6 0 0 :::80 :::* LISTEN 1802/nginx: master
[root@localhost ~]#
远程访问
向web页面中添加图片和视频
上传图片和视频 到/usr/bin/nginx/html
修改/usr/bin/nginx/html/index.html
在本地物理主机上使用scp上传
scp 路径 root@192.168.2.34:/usr/share/nginx/html/
上传图片和视频
静态文件和动态文件
需要客户单运行的文件,静态文件
html css js img mp4 安装包不需要在服务器中解析,需要下载到客户端,例如html文件是要求用户下载到本地内存,使用本地浏览器解析并且显示
动态文件,需要服务器先进行计算,再响应给客户端的内容,例如,登录(用户使用浏览器向服务器发送登录信息账号米,阿木等等,服务器对用户信息进行机选,服务器访问数据库,判断是否可以登录,即将计算结结果生成json或者xml格式的数据响应给客户端的浏览器)
用于用户更多的访问静态文件,而动态的服务可能不是很频繁,或者说数据传输数量不是很大,静态文件的流量大,动态数据流量比较小,开发者不希望动态项目和静态项目部署在同一个服务上,静态的访问静态服务,动态的访问动态的服务器
以前部署一个jsp项目就可以了,现在可以需要前端服务,还需要部署后端服务
前端服务器加大流量,后端服务器增加算力
更加节省资源
nfs提供了解决方案,将静态资源单独的放在一个服务器中
nfs主要支持局域网,目前使用阿里云或者其他的云服务 oss(对象存储服务,阿里云oss有永久的40g使用)
nfs服务依赖的应用
nfs-toos rp crpcbind
安装nfs
[root@localhost ~]# yum -y install nfs-utils.x86_64 rpcbind.x86_64
nfs配置
nfs服务器:
编辑配置文件/etc/exports指定暴露的文件
创建一个目录
配置文件
[root@nfs-server share]# vim /etc/exports
[root@nfs-server share]# systemctl start rpcbind
[root@nfs-server share]# systemctl start nfs
/share *(rw,sync)
启动成功后,就可以在webserver查看了
rpc服务的端口号是11
web服务器:
创建一个目录,这个目录用来挂载nfs的文件
[root@localhost ~]# mkdir /usr/share/nginx/html/static
挂载nfsserver的文件
[root@localhost ~]# mount -t nfs 192.168.2.34:/share /usr/share/nginx/html/static
rsync同步,将文件复制一份
nfs拿到了一个文件的连接
nfs中的东西被同步过去了
小结:
1.创建了两个虚拟机
2.nfsserver配置静态文件共享
1.停用了防火墙和selinux
2.安装两个应用
rpcbind
nfs-utils
3.配置/etc/exports
/share *(rw,sync)
4.启动服务
systemctl start rpmbind
systemctlstart nfs
5.查看端口占用
netstat -lnput | grep 111
6.确定nfs服务区正常启动
3.webserver 发布web项目
1.停用防火墙和selinux
2.安装nginx
3.修改nginx默认的index.html,添加图片和视频
4.在nginx下的html目录中创建一个挂载目录static
mkdir /usr/share/nginx/html/static/
5.挂载nfs服务
mount -a nfs 192.168.2.34:/share/ /usr/share/nginx/html/static
6.查看挂载目录
7.文件的测试
在nfs目录添加东西,在浏览器会查看到
[root@nfs-server share]# echo "我是最厉害的" > /share/a.txt
访问:192.168.2.35/static/a.txt
测试在ststic目录中添加文件,看看nfsserver服务器中的文件是否会更新
备份 scp cp rsync
当nfs的share目录中的文件发生改变的时候,备份到bakerver
bakerver克隆
10分钟 inotify-tools rsync nohup &
备份静态文件
1.克隆一个备份主机,bakuphost
2.停用selinux和firewalld
[root@bakserver ~]# systemctl stop firewalld
[root@bakserver ~]# setenforce 0
3.支持rsync备份同步,安装rsync,bakuphost nfssever两台主机上都应该安装
两台机器都需要安装
[root@bakserver ~]# yum -y install rsync
[root@nfs-server share]# yum -y install rsync
[root@nfs-server share]# yum -y install inotify-tools
4.在nfs主机上安装inotify-tools监听/share目录
[root@nfs-server share]# rsync -av /share/ root@192.168.2.36:/tmp/
5.先同步一份文件到bakup主机的tmp目录下
6.需要输入密码才会同步过去,为了自动化,设置免密
1.ssh-keygen
2.ssh-copy-id root@192.168.2.36
3.测试
7.bakuphost主机上创建/bakup目录
9.脚本的代码
#!/bin/bash
inotifwait /share -mrq -e modify,create,delete,attrs,move | while read events
do
rsync -av --delete /share/ root@192.168.2.36:/bakup/
#也可以输出日志
done
10.给 添加x权限,执行脚本
SAMBA
在bakuphost主机上安装samba
[root@bakserver ~]# yum -y install samba
修改samba的配置文件 /etc//etc/samba/smb.conf
[root@bakserver ~]# vim /etc/samba/smb.conf
设置用户user01 ,samba认证123密码
[root@bakserver ~]# useradd user01
[root@bakserver ~]# smbpasswd -a user01
New SMB password:
Retype new SMB password:
Added user user01.
windows访问bakup中的数据,必须用user01 123
启动名称管理面
[root@bakserver ~]# systemctl start nmb.service
[root@bakserver ~]# systemctl start smb.service
为共享文件添加写权限
setfacl -m u:user01:rwx /bakup/
执行完成以后,在windows中可以直接读写
打开一台新机器,安装客户端
[root@localhost ~]# yum -y install samba-client
[root@localhost ~]# smbclient -L 192.168.2.36 -U user01
[root@localhost ~]# smbclient //192.168.2.36/smb_share -U user01
[root@localhost ~]# yum -y install cifs-utils
[root@localhost ~]# mount.cifs -o user=user01,pass=123 //192.168.2.36/smb_share
~/aaa/