实验环境
前端nginx:ip 192.168.6.242,对后端的wordpress网站做反向代理实现负载均衡
后端nginx:ip 192.168.6.36,192.168.6.205都部署wordpress,并使用相同的数据库
安装rsync和inotify
在后端的两个wordpress上配置rsync+inotify,两服务器都开启rsync服务,并且通过inotify分别向对方同步数据, 下面配置192.168.6.205这台服务器
vim /etc/rsyncd.conf
uid = nginx
gid = nginx
port = 873
host all = 192.168.6.36 #另外一台wordpress使用192.168.6.205
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 = etc/rsync_server.passwd #指定帐号密码,用于提供另外一个节点访问自身的帐号
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | vim /etc/rsyncd.conf uid = nginx gid = nginx port = 873 host all = 192.168.6.36 #另外一台wordpress使用192.168.6.205 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 = etc/rsync_server.passwd #指定帐号密码,用于提供另外一个节点访问自身的帐号 |
账号密码
服务端
vim /etc/rsync_server.passwd
rsync:rsync
客户端
vim /etc/rsync_client.passwd
rsync
#用于访问另外一个wordpress使用的密码文件
1 2 3 4 5 6 7 8 | 服务端 vim /etc/rsync_server.passwd rsync:rsync
客户端 vim /etc/rsync_client.passwd rsync #用于访问另外一个wordpress使用的密码文件 |
配置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
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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 &
1 | nohup /root/inotify.sh & |
配置前端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;
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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; } } |
修改wordpress中的设置
必须将这个了的站点地址改为前端nginx的ip地址或者域名
W3c0.com 提供的内容仅用于培训。我们不保证内容的正确性。通过使用本站内容随之而来的风险与本站无关。W3c0 简体中文版的所有内容仅供测试,对任何法律问题及风险不承担任何责任。 当使用本站时,代表您已接受了本站的使用条款和隐私条款。版权所有,保留一切权利。 鲁ICP备15022115号