linux下实现web数据同步的四种方式(性能比较)

2019-10-14 21:56:16于海丽

[root@jie1 htdocs]#setfacl -R -m u:apache:rwx /web/ #设置apache用户对此中所有文件有读写可执行权限

2)客户端挂载服务器的共享文件,查看客户端是否已经同步服务器端的文件


[root@jie3 website]#cd /root
[root@jie3 ~]# mount -t nfs 172.16.22.1:/web/htdocs /website/ #通过nfs挂载服务器端的文件
[root@jie3 /]#echo "172.16.22.1:/web/htdocs  /website       nfs    defaults,_netdev 0 0" >>/etc/fstab  #实现开机挂载
[root@jie3 ~]# cd /website/
[root@jie3 website]# ls  #查看文件已经同步过来
index.html  test.html  test.php
[root@jie3 website]#

3)客户端在共享的文件中新增文件,查看服务器端是否同步文件


[root@jie3 ~]# cd /website/
[root@jie3 website]# ls
index.html  test.html  test.php
[root@jie3 website]# touch website.html  #在客户端创建此文件
[root@jie3 website]# ls
index.html  test.html  test.php  website.html

[root@jie1 htdocs]# ls  #服务器端,可以查看来着客户端上传的文件
index.html  test.html  test.php  website.html

所有的数据其实都保存到了nfs服务器,不论用户访问哪台Web服务器,都要来nfs服务器获取数据,这样势必照成nfs服务器的性能下降,而且客户端对nfs服务器的依赖性较大,如果nfs服务器down掉之后,客户端的web服务器就无法工作了。(动态的那种数据,而且数据量很大的数据,就不要用nfs服务器来实现数据共享了,一般适应于,静态页面和数据较小的文件)

二、rsync +inotify实现web数据同步

rsync(remote sync)的特性:

   可以镜像保存整个目录树和文件系统
   可以同步增量同步数据,文件传输效率高,因而同步时间很短
   可以保持原有文件的权限、时间等属性
   加密传输数据,保证了数据的安全性
   支持匿名传输
         rsync也能实现同步,但是需要自己手动的去同步数据,当数据量非常的频繁时,无疑是加大了运维人员的工作,inotify是一种强大的、细粒度的、异步的文件系统事件监控机制,inotify-tools工具的出现,解决了这种工作,安装inotify软件的主机会监听服务器端的主机是否数据和本机不一样,(因为在上传数据时,运维人员先上传到安装inotify主机上),不一样就用rsync命令直接把数据传输过去。客户端安装rsync软件是为了调用rsync的命令,安装inotify软件是监听和数据是否发生改变,服务器端安装rsync软件时为了提供rsync服务。