zoukankan      html  css  js  c++  java
  • keepalived+nginx高可用负载均衡环境搭建

    上篇说道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机器上面来

  • 相关阅读:
    live555源码研究(三)------UsageEnvironment类
    live555源码研究(二)------TaskScheduler类
    live555源码研究(一)------live555MediaServer的启动过程和基本类图
    (转)视频监控相关文章
    【流媒體】live555—VS2008 下live555编译、使用及测试
    【转】PostgreSQL IP地址访问配置
    red5研究(一):下载,工程建立、oflaDemo安装、demo测试
    SVN服务器的搭建和使用
    【转】linux下cvs配置
    【转】js正则表达式语法
  • 原文地址:https://www.cnblogs.com/zpitbolg/p/5483676.html
Copyright © 2011-2022 走看看