keepalived+nginx的代理使用心得

硬件配置:使用虚拟机装ubuntu13.10系统。开启三台。nginx

环境配置:u001(192.168.58.130)和u002(192.168.58.129)装有keepalived+lnmp(集成环境)web

                u003(192.168.58.128)装有lnmp(集成环境)ubuntu

---------------------------------------------
安全

配置信息:u001和u002使用keepalived创建主备系统。u001为主;同时虚拟IP(192.168.58.131)服务器

经过IP访问能够访问ip:131;oop

关闭u001;再次访问131.依然没有问题,且本地能够ping通。此时不可使用的是130访问,可使用的访问ip为131和129同时来自u002;
server

此时本机的host添加记录192.168.58.131   xx.com;  能够正常访问到主机u002,可是此时使用的是虚拟ip:131。既使用ping xx.com 显示的ip地址仍是131;
ip

----------------------------------------------------------------------------
资源

配置信息:u001的nginx配置中使用模块upstream。配置服务的ip为三台虚拟机的地址同时加入了IP(192.168.58.131)。及配置了有四个IP。设置虚拟的服务域名为xx.com;lnmp

此时访问xx.com ; 原本是应该是实际上有三台服务器在提供服务,其实只有两台提供web应用。既咱们不可能访问到u001上的资源。缘由分析:每次请求先到ip131;这时做为主服务器的u001就接受到信息。

ngingx调用upstream模块;随机拿到ip地址:假如拿到的是129和128,将分别访问到u002和u003;重点是:假如咱们拿到了131和130;就意味着造成一个loop;再次访问了本地,再次发起请求直到拿到的ip为129和128;才能正常的返回数据。既访问不到u001,他只能做为请求的分发工做了;问题又来了,咱们采用直接ip的访问方式就没有问题了,也就是说咱们使用192.168.58.130或者192.168.58.131,就没有问题了,就从新访问到u001的web资源,仍是经过nginx的解析,可是对应配置的模块中的信息就不会执行了。

问题分析:nginx的功能解析先是正则匹配,符合设定的域名就会调用指定的模块,本身就会把本身圈进去。

------------------------------------------------------------------------------

解决loop方案:u001监听两个端口,配置使用upstream的地方就监听80端口,在upstream的server的列表中访问当前机器的端口为非80,这样就不会掉进loop中。假如u001关机了,切换到u002这时就不能再次访问到u003;因此u002开启upstream,配置相似u001,也同时监听两个端口。全部来自80的请求都须要走upstream模块,从新分配请求的目的地。

-----------------------------------------------------------------------------------

最终方案整理:一、u001和u002在keepalived中,创建主备关系,u001为主;

                        二、u001的nginx的upstream模块监听80端口的请求。分发地址为:u001和u002的非80端口,同时nginx也要同时监听设定的端口。其余服务器的80端口。

                         三、u002的nginx的upstream模块监听80端口的请求。分发地址为:u002的非80端口,同时nginx也要同时监听设定的端口。其余服务器的80端口。

                        四、扩展时主要就是其余的服务器的配置只需简单的监听80便可,同时在u001和u002中的upstream模块加入这个服务器的地址就可配置。

-------------------------------------------------------------------------------

对外仅仅须要提供那个虚拟ip就能达到多台服务器的安全提供服务,只要不是两台主服务器都停机,仍是蛮安全的。

其余状况:在u001中 不给u002一点权重很难被访问到,仅仅给u002权重致使其余又不能访问到,只能都加上权重。不知道是否是bug;

提问:这是否是让这三台发挥最大的效果呢?同时保障更安全的工做。

相关文章
相关标签/搜索