• 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机器上面来

  • 相关阅读:
    微软开源Counterfit,用于AI系统安全测试的自动化工具
    吴恩达教你如何读论文:绘制进度表格,论文至少看三遍,还要问自己问题
    前帝国理工金融数学PhD易聪先生的书单
    以机器学习的视角来看时序点过程的最新进展
    文献阅读第一利器:文献笔记法(Literature Notes)
    死磕论文前,不如先找齐一套好用的工具
    后悔没早点认识论文工具大盘点!
    写论文、搞科研、读大学必备的28款软件。
    2-1-HC32F460(华大)+BC260Y(NB-IOT)基本控制篇(自建物联网平台)-基础外设例程-工程模板使用说明
    1-HC32F460(华大)+BC260Y(NB-IOT)基本控制篇(自建物联网平台)--硬件使用说明
  • 原文地址:https://www.cnblogs.com/zpitbolg/p/5483676.html
Copyright © 2020-2023  润新知