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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实现web数据同步的四种方式=======================================1、nfs实现web数据共享2、rsync+inotify实现web数据同步3、rsync+sersync更快更节约资源实现web数据同步4、unison+inotify实现web数据双向同步=======================================一、nfs实现web数据共享nfs能实现数据同步是通过NAS(网络附加存储),在服务器上共享一个文件,且服务器需要设置文件系统的权限和配置文件设置的权限,权限两者之间取交集,然后客户端把共享的文件挂载到本地,客户端对文件有读写权限,则实现数据的同步。nfs+web:服务器端的配置:1)、安装相关软件,httpd提供web服务,nfs-utils提供nfs服务[root@jie1~]#yum-yinstallhttpdnfs-utils2)、设置web的相关配置,使得web能够提供web服务复制代码代码如下:[root@jie1~]#vim/etc/httpd/conf/httpd.conf########################################ServerName172.16.22.1:80#DocumentRoot/var/提供虚拟主机,注释默认存放网页文件的路径VirtualHost*:80ServerName[root@jie1~]#mkdir-pv/web/htdocs#创建存放网页的目录[root@jie1~]#cd/web/htdocs/[root@jie1htdocs]#touchindex.htmltest.htmltest.php[root@jie1htdocs]#lsindex.htmltest.htmltest.php[root@jie1htdocs]#echoThisisJie1Web+nfsServerindex.html[root@jie1htdocs]#httpd-t#检查web的配置文件是否有语法错误SyntaxOK[root@jie1htdocs]#servicehttpdstart#开启web服务Startinghttpd:[OK]3)、设置nfs的相关配置,共享网页文件复制代码代码如下:[root@jie1htdocs]#idapache#安装httpd软件后,系统会创建apache用户,查看apache的id号uid=48(apache)gid=48(apache)groups=48(apache)[root@jie1htdocs]#vim/etc/exports######################################/web/htdocs172.16.22.3(rw,sync,root_squash,anonuid=48,anongid=48)#nfs是以id号来确定是否能访问共享的文件的,因为两个服务器都安装了httpd软件,都会有apache用户,所以apache用户的id号能访问共享的文件#/web/htdocs共享的目录#172.16.22.3指定客户端能共享此文件,多个客户端用逗号隔开#rw,读写权限#sync,同步方式#root_squash,压缩root用户的权限#anonuid=48,指定此用户的id能访问共享文件#anongid=48指定此组的id能访问共享文件######################################[root@jie1htdocs]#servicenfsstart#开启nfs服务StartingNFSservices:[OK]StartingNFSquotas:[OK]StartingNFSmountd:[OK]StoppingRPCidmapd:[OK]StartingRPCidmapd:[OK]StartingNFSdaemon:[OK][root@jie1htdocs]#web:客户端的配置1)、安装httpd的软件复制代码代码如下:[root@jie3/]#yum-yinstallhttpd2)、设置web的相关配置,使得web能够提供web服务复制代码代码如下:[root@jie3/]#vim/etc/httpd/conf/httpd.conf########################################ServerName172.16.22.3:80#DocumentRoot/var/*:80ServerName存放网页文件的路径/VirtualHost#######################################[root@jie3/]#mkdir/website[root@jie3/]#httpd-tSyntaxOK[root@jie3/]#servicehttpdstartStartinghttpd:[OK][root@jie3~]#cd/website/[root@jie3website]#ls#现在查看是没有任何文件[root@jie3website]#实现同步:1)服务器端设置apache用户对共享的文件有读写权限复制代码代码如下:[root@jie1htdocs]#setfacl-R-mu:apache:rwx/web/#设置apache用户对此中所有文件有读写可执行权限2)客户端挂载服务器的共享文件,查看客户端是否已经同步服务器端的文件复制代码代码如下:[root@jie3website]#cd/root[root@jie3~]#mount-tnfs172.16.22.1:/web/htdocs/website/#通过nfs挂载服务器端的文件[root@jie3/]#echo172.16.22.1:/web/htdocs/websitenfsdefaults,_netdev00/etc/fstab#实现开机挂载[root@jie3~]#cd/website/[root@jie3website]#ls#查看文件已经同步过来index.htmltest.htmltest.php[root@jie3website]#3)客户端在共享的文件中新增文件,查看服务器端是否同步文件复制代码代码如下:[root@jie3~]#cd/website/[root@jie3website]#lsindex.htmltest.htmltest.php[root@jie3website]#touchwebsite.html#在客户端创建此文件[root@jie3website]#lsindex.htmltest.htmltest.phpwebsite.html[root@jie1htdocs]#ls#服务器端,可以查看来着客户端上传的文件index.htmltest.htmltest.phpwebsite.html所有的数据其实都保存到了nfs服务器,不论用户访问哪台Web服务器,都要来nfs服务器获取数据,这样势必照成nfs服务器的性能下降,而且客户端对nfs服务器的依赖性较大,如果nfs服务器down掉之后,客户端的web服务器就无法工作了。(动态的那种数据,而且数据量很大的数据,就不要用nfs服务器来实现数据共享了,一般适应于,静态页面和数据较小的文件)二、rsync+inotify实现web数据同步rsync(remotesync)的特性:可以镜像保存整个目录树和文件系统可以同步增量同步数据,文件传输效率高,因而同步时间很短可以保持原有文件的权限、时间等属性加密传输数据,保证了数据的安全性支持匿名传输rsync也能实现同步,但是需要自己手动的去同步数据,当数据量非常的频繁时,无疑是加大了运维人员的工作,inotify是一种强大的、细粒度的、异步的文件系统事件监控机制,inotify-tools工具的出现,解决了这种工作,安装inotify软件的主机会监听服务器端的主机是否数据和本机不一样,(因为在上传数据时,运维人员先上传到安装inotify主机上),不一样就用rsync命令直接把数据传输过去。客户端安装rsync软件是为了调用rsync的命令,安装inotify软件是监听和数据是否发生改变,服务器端安装rsync软件时为了提供rsync服务。rsync+web服务端的配置:1)、安装相关软件复制代码代码如下:[root@jie1~]#yum-yinstallrsyncxinetdhttpd#rsync服务通常基于超级守护进程xinetd管理的方式来实现,因此需要事先安装rysnc和xinetd2)、web的相关配置,使得web能够提供服务复制代码代码如下:[root@jie1~]#vim/etc/httpd/conf/httpd.conf########################################ServerName172.16.22.1:80#DocumentRoot/var/*:80ServerName[root@jie1~]#mkdir-pv/web/htdocs[root@jie1~]#cd/web/htdocs#服务器端,没有任何的网页文件[root@jie1~]#ls[root@jie1~]#3)、rsync服务的相关配置*****建立rsync的配置文件和密码文件************touch/etc/rsyncd.conf(rsync的配置文件)touch/etc/rsyncd.pwd(用户的密码文件)chmod600/etc/rsyncd.pwd(权限要设置为600,否则无法备份成功)复制代码代码如下:[root@jie1~]#vim/etc/rsyncd.conf############vim/etc/rsyncd.conf########################################uid=nobody#备份以什么身份进行,用户IDgid=nobody#备份以什么身份进行,组IDusechroot=no#禁锢在源目录maxconnections=3#最大连接数,0代表没有限制strictmodes=yes#是否检查口令文件的权限pidfile=/var/run/rsyncd.pid#运行进程的pid文件logfile=/var/log/rsyncd.log#日志记录文件[htdocs]#指定认证的备份模块名path=/web/htdocs#需要备份的目录的路径ignoreerrors=yes#忽略一些无关的IO错误readonly=no#设置为no,即可以传至服务器的相应目录。writeonly=no#设置为no,表示客户端可以下载文件hostsallow=172.16.22.3#可以连接rsync服务器的主机的IP地址hostsdeny=*#设置禁止连接rsync服务器的主机地址,*表示拒绝所有除了hostsallow定义的uid=rootgid=rootauthusers=backuper#连接模块的用户名secretsfile=/etc/rsyncd.pwd#连接模块用户名的密码文件存放路径#####################################################################[root@jie1~]#vim/etc/r

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功