Ubuntu下Nginx做负载实现高性能WEB服务器4---RSYNC实现网站同步

1.架构

NGINX做前端HTTP转发用,后端采用2台APACHE2做WEB服务器,需要保证2台WEB服务器网站内容是同步的,即无论NGINX将请求发送到哪一台WEB服务器,客户端打开的页面必须保持一致,此时就可以利用RSYNC来实现该功能。

2.安装

在UBUNTU下安装RSYNC通过以下步骤可以实现:

# apt-get install rsync xinetd

2.1. 编辑/etc/default/rsync 启动rsync作为使用xinetd的守护进程

# vim /etc/default/rsync RSYNC_ENABLE=inetd

2.2. 创建 /etc/xinetd.d/rsync 通过xinetd使rsync开始工作

# vim /etc/xinetd.d/rsync service rsync { disable = no socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID }

2.3. 创建 /etc/rsyncd.conf 配置rsync使其在.

# vim /etc/rsyncd.conf

#address = 192.168.1.9
#port = 873

#limit access to private LANs
max connections = 2
hosts allow = 192.168.1.0/255.255.255.0
hosts deny = *

log file = /var/log/rsync.log
pid file = /var/run/rsyncd.pid
transfer logging = yes
log format = %t %a %m %f %b
timeout = 300

[www]
comment = web rsync
path = /var/www/
read only = no
list = yes
uid = nobody
gid = nogroup
#uid = root
#gid = root

#ignore errors
auth users = root,longwind
secrets file = /etc/rsyncd.secrets

2.4. 创建 /etc/rsyncd.secrets 配置用户名和密码.

# vim /etc/rsyncd.secrets root:ubuntu2 # chmod 600 /etc/rsyncd.secrets

5. 启动/重启 xinetd

$ sudo /etc/init.d/xinetd restart 

rsync -avzu --delete --progress /var/www/ [email protected]:/var/www  #192.168.1.9服务端执行

rsync -avzu  --progress --delete [email protected]:/var/www/ /var/www #192.168.1.10客户端执行

必须注意的是要同步的服务端必须以/结尾,否则就是备份而不是同步了。

参数如下

v详细提示
a以archive模式操作,复制目录、符号连接
z压缩
u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时
-progress指显示

可以创建一个文件作为客户端密码自动登录使用,

在客户端上/root创建rsync.ps

rsync.ps 只包含password即可。
chmod 600 rsync.ps

这样客户端运行rsync -avzu  --progress --delete --password-file=/root/rsync.ps [email protected]::www /var/www

即可自动登录。

7.

rsync有六种不同的工作模式:

1. 拷贝本地文件;当SRC和DES路径信息都不包含有单个冒号”:”分隔符时就启动这种工作模式。
2.使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST
路径地址包含单个冒号”:”分隔符时启动该模式。
3.使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC
地址路径包含单个冒号”:”分隔符时启动该模式。
4. 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含”::”分隔符时启动该模式。
5. 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含”::”分隔符时启动该模式。
6. 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。

8.配置网站定时同步

只需在客户端配置,

新建rsync.sh文件内容为

rsync -avzu --progress --delete --password-file=/root/rsync.ps [email protected]::www /var/www

赋予可执行权限

chmod 755 rsync.sh

添加定时执行 crontab –e

*/15 * * * * /root/rsync.sh > /var/log/web_rsync.log 2>&1   #每隔15分钟同步一次

保存完成。

你可能感兴趣的:(Web,服务器,service,rsync,default)