码迷,mamicode.com
首页 > 其他好文 > 详细

keepalived+nginx高可用负载均衡环境搭建

时间:2016-05-11 23:42:13      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

上篇说道keepalived的环境搭建,本来keepalived结合lvs更有优势,但是也可以结合nginx来使用。下面接着说下nginx的环境搭建

环境信息:

nginx(master)  192.168.1.106

nginx(bakup)   192.168.1.103

首先安装一下pcre

yum install pcre-devel

安装完了解压nginx.我用的是nginx-1.6.2.tar.gz

tar -zvxf nginx-1.6.2.tar.gz

cd nginx-1.6.2

./configure

编译成功的时候会打印下面信息

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx" 启动命令路径
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf" 配置文件路径
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log" 
  nginx http access log file: "/usr/local/nginx/logs/access.log" 日志路径
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

要注意几个路径

然后就是

make

make install

至此,nginx就安装完了。然后就是配置nginx

注意是两台机器都要安装

vi /usr/local/nginx/conf/nginx.conf

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;


upstream web_pools {

    server 192.168.1.102:8080 weight=5;
    server 192.168.1.104:8080 weight=5;
    #server 10.0.0.10:80 weight=5  backup;
}
    server {
        listen       80;
        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://web_pools;

        }

    }
}

配置文件主要就是配置upstream,server

从server可以看出,nginx监听本机80端口。然后转发给web_pools

然后就可以启动nginx了

cd /usr/local/nginx/sbin

./nginx

[root@masters sbin]# ps -ef | grep nginx
root      8207     1  0 04:37 ?        00:00:00 nginx: master process ./nginx
nobody    8208  8207  0 04:37 ?        00:00:00 nginx: worker process
root     10342 10069  0 06:26 pts/1    00:00:00 grep nginx

接着可以测试下nginx生效没

可以在192.168.1.104和192.168.1.102服务器里面启动两个tomcat。

然后

http://192.168.1.106/test/index.jsp

访问一下

我是在102 104机器tomcat下面放了个test工程,工程里面有个index.jsp文件

如果能访问到就说明nginx搭建成功了,也可以把其中一台比如102上面的tomcat关掉。看看服务是不是还能用,然后把tomcat启动起来再试试

然后在192.168.1.103(backup)上面也同样搭建nginx

两台机器上nginx都没问题之后,就可以用keepalived的vip进行访问了。

http://192.168.1.100/Test/index.jsp

技术分享

接着测试下把其中一个keepalived关掉,然后再访问服务。

发现仍然没问题。

但是如果访问的时候nginx挂了,会不会另外一台nginx自动切换过来呢。答案是不会

keepalived感知不到机器上nginx是不是可用。

那该怎么解决这个问题呢?

我们可以通过shell来实现nginx挂了之后的自动切换。

脚本主要实现

检查本机nginx,发现nginx挂了之后,把本机keepalived服务关掉

这样,keepalived的backup会自动切换过来,请求也就能访问backup上面的nginx服务了。

等master上面服务修复之后,请求会再次请求到master机器上面来

 

keepalived+nginx高可用负载均衡环境搭建

标签:

原文地址:http://www.cnblogs.com/zpitbolg/p/5483676.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!