场景还原:
需求分析,前端一台nginx做负载均衡反向代理,后面两台httpd服务器。整个架构是提供BBS(论坛)服务,有一需求得实现读写分离,就是上传附件的功能,我们上传的附件只能上传到Web1,然后在Web1上利用rsync+inotify实现附件同步,大家都知道rsync+inotify只能是主向从同步,不能双向同步。所以Web1可进行写操作,而Web2只能进行读操作,这就带来读写分离的需求,下面我们就来说一下,读写分离怎么实现。
**原理:**根据发送的请求类型,进行相应的动态分发
if ($request_method = "PUT"){}
实现步骤
配置nginx.conf文件
location / {
if ($request_method = "PUT"){
proxy_pass http://172.16.1.251:8099;
}
proxy_pass http://localhost:8080;
}
错误情况:
至此:所谓读取操作全部在服务A进行,写操作全部在服务B进行,以达到读写分离的效果.