nginx+rsync+inotify实现负载均衡

实验环境

前端nginx:ip 192.168.6.242,对后端的wordpress网站做反向代理实现负载均衡
后端nginx:ip 192.168.6.36,192.168.6.205都部署wordpress,并使用相同的数据库

1、安装rsync和inotify

在后端的两个wordpress上配置rsync+inotify,两服务器都开启rsync服务,并且通过inotify分别向对方同步数据
下面配置192.168.6.205这台服务器

vim /etc/rsyncd.conf
 uid = nginx
 gid = nginx
 port = 873
 <span style="background-color: #(color);"><span style="color: #f00;">host all = 192.168.6.36     #另外一台wordpress使用192.168.6.205</span></span>
 use chroot = on
 max connections = 4
 timeout = yes
 [wordpress]
 path = /usr/local/nginx/html/wordpress
 comment = rsync files
 ignore errors
 read only = no
 list = yes
 auth users = rsync
 secrets file = <span style="color: #f00;">/etc/rsync_server.passwd     #指定帐号密码,用于提供另外一个节点访问自身的帐号
 </span>
vim /etc/rsync_server.passwd
 rsync:rsync
vim /etc/rsync_client.passwd
 <span style="color: #(color);">rsync                                                     #用于访问另外一个wordpress使用的密码文件</span>

配置inotify同步脚本

vim /root/inotify.sh
 #!/bin/bash
 host=192.168.6.36                  #另外一个wordpress
 src=/usr/local/nginx/html/wordpress/
 dst=wordpress
 user=rsync
 inotifywait=/usr/local/inotify/bin/inotifywait
 rsync=/usr/bin/rsync
 $inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib $src | while read files
 do
 $rsync -vzrtopg --delete --progress --password-file=/etc/rsync_client.passwd $src $user@$host::$dst
 echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
 done

让该脚本在后台运行

nohup /root/inotify.sh &

2、配置前端nginx实现反向代理

vim /usr/local/nginx/conf/nginx.conf
 #在http段中加入
 include vhost/wordpress.conf;
mkdir /usr/local/nginx/confi/vhost
 vim /usr/local/nginx/confi/vhost/wordpress.conf
 upstream wordpress {
     server 192.168.6.205 weight=1;
     server 192.168.6.36 weight=1;
 }
server {
   location / {
       proxy_pass http://wordpress;
       proxy_redirect      off;
       proxy_set_header    Host        $host;
       proxy_set_header    X-Real-IP   $remote_addr;
   }
 }

3、修改wordpress中的设置,必须将这个了的站点地址改为前端nginx的ip地址或者域名

发表评论