keepalived结合nginx实现nginx高可用的方法

yizhihongxing

实现nginx高可用的方法有很多种,其中一种比较常见的方法是使用keepalived结合nginx。接下来我将给出一个完整的攻略,包括keepalived、nginx的安装和配置以及两个示例说明。

安装keepalived

keepalived是一个高可用性的解决方案,可以在多个服务器之间维护虚拟IP。在此之前需要安装依赖库和编译工具:

sudo yum install -y gcc make openssl-devel libnfnetlink-devel net-snmp-devel wget

然后,从官网下载最新的稳定版本的keepalived,比如v2.1.5:

wget https://www.keepalived.org/software/keepalived-2.1.5.tar.gz
tar zxvf keepalived-2.1.5.tar.gz
cd keepalived-2.1.5 
./configure
make && sudo make install

配置keepalived

安装完之后,在需要实现高可用的两台服务器上都进行如下配置:

编辑/etc/keepalived/keepalived.conf文件,添加如下内容:

vrrp_script check_nginx {
        script "/usr/local/nginx/sbin/nginx -t"
        interval 2
        fall 2
        rise 2
}
vrrp_instance VI_nginx {
        state MASTER
        interface eth0
        virtual_router_id 51
        priority 101
        authentication {
             auth_type PASS
             auth_pass 1111
        }
        track_script {
             check_nginx
        }
        virtual_ipaddress {
             192.168.1.100/24
        }
}

其中,virtual_router_idinterface需要在两台服务器上分别设置不同的值,priority用于设置主服务器的优先级,数字越大优先级越高。

上述配置中,check_nginx是自定义的脚本,用于检测nginx是否正常运行。如果nginx出现问题,则该脚本的返回值为“1”,表示nginx状态异常,keepalived会向另一台服务器发送虚拟IP的切换请求。

安装nginx

安装最新的稳定版本的nginx,比如v1.20.1:

wget http://nginx.org/download/nginx-1.20.1.tar.gz
tar zxvf nginx-1.20.1.tar.gz
cd nginx-1.20.1
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_sub_module --with-stream
make && sudo make install

配置nginx

在两台服务器上都进行如下nginx配置:

编辑/usr/local/nginx/conf/nginx.conf文件,修改为如下内容:

user  nobody;
worker_processes  2;
error_log  logs/error.log;
pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }
        location /health {
            return 200 'ok';
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}
stream {
    upstream nginx_server {
        server 127.0.0.1:80;
    }
    server {
        listen 192.168.1.100:80;
        proxy_pass nginx_server;
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_buffer_size 32k;
    }
}

其中,server块中的“location /health”用于健康检查,如果返回值为“ok”则表示nginx健康。

stream块中的upstream用于指定上游服务器的地址,server块用于将虚拟IP绑定到本机,并将请求转发到上游服务器上。

示例说明

下面我们将给出两个示例说明,分别是nginx访问应用服务器的情况和nginx作为反向代理的情况。

示例一:nginx访问应用服务器

假设我们有两台应用服务器,分别为192.168.1.101和192.168.1.102,监听的端口号为8080,使用HTTP协议。

我们需要在nginx配置文件中添加如下内容:

upstream app_servers {
    server 192.168.1.101:8080;
    server 192.168.1.102:8080;
}

server {
    listen 80;
    server_name example.com;
    location / {
        proxy_pass http://app_servers;
    }
}

上述配置中,upstream用于指定应用服务器的地址,server用于监听HTTP请求,将请求转发到上游服务器上。

当nginx的虚拟IP被切换到另一台服务器时,上游服务器的地址会自动更新。

示例二:nginx作为反向代理

假设我们有两台Web服务器,分别为192.168.1.201和192.168.1.202,使用HTTP协议。

我们需要在nginx配置文件中添加如下内容:

upstream web_servers {
    server 192.168.1.201;
    server 192.168.1.202;
}

server {
    listen 80;
    server_name example.com;
    location / {
        proxy_pass http://web_servers;
    }
}

上述配置中,upstream用于指定Web服务器的地址,server用于监听HTTP请求,将请求转发到上游服务器上。

当nginx的虚拟IP被切换到另一台服务器时,上游服务器的地址会自动更新。

以上就是使用keepalived结合nginx实现nginx高可用的方法的完整攻略,包括安装和配置keepalived和nginx以及两个示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:keepalived结合nginx实现nginx高可用的方法 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Nginx URL后面不加斜杠301重定向

    今天开发碰到一个问题,其实之前就有这个问题,但是一直都没去关注,今天测试碰到了就解决一下。 问题情况: 当我请求 http://admindev.jingruiauto.com/store/views/basedata 的时候,浏览器自动跳转到了 http://admindev.jingruiauto.com:8100/store/views/basedat…

    Nginx 2023年4月12日
    00
  • Nginx服务器Nginx.com配置文件详解

    作为网站的作者,我非常乐意为大家讲解Nginx服务器Nginx.com配置文件的详细攻略。在接下来的内容中,我将分别介绍Nginx服务器配置文件的结构、语法以及如何进行配置。最后,我还会通过两条具体的示例来说明如何配置Nginx服务器来达到不同的目的。 Nginx服务器的配置文件 Nginx服务器的配置文件是一个文本文件,通常称为nginx.conf。该配置…

    Nginx 2023年5月16日
    00
  • Nginx 自定义404、500、502 页面

    利用nginx的反向代理来实现 服务器404 和500 等状态码的自定义页面 1.nginx配置文件 nginx.conf 配置开启代理错误拦截 和配置页面  下划线部分  http { …… proxy_intercept_errors on; fastcgi_intercept_errors on; server { …… error_p…

    Nginx 2023年4月11日
    00
  • nginx和flask安装与配置

    网上的教程很垃圾,现自己写一份 其实我也写的很垃圾,同事怎么也搭不起环境,原因是如果安装好nginx,那么nginx和uwsgi之间用socket通信,文章中的  uwsgi –http :5000  –ini uwsgi_conf.ini -d ./uwsgi.log –pidfile=uwsgi.pid不应该去盲目测试,应该用 uwsgi –in…

    Nginx 2023年4月9日
    00
  • Nginx+Tomcat的服务器端环境配置详解

    下面我将针对“Nginx+Tomcat的服务器端环境配置详解”进行完整的讲解和示例说明。 一、Nginx+Tomcat的服务器端环境配置详解 1. 准备工作 在配置Nginx+Tomcat之前,我们需要准备好以下内容: 安装好Nginx和Tomcat 熟悉Nginx和Tomcat的基本配置 熟悉Linux系统常用命令 2. Nginx配置 在Nginx的配置…

    Nginx 2023年5月16日
    00
  • Nginx服务器配置性能优化方案

    Nginx服务器配置性能优化方案 Nginx服务器是现代化服务器软件,它可以有效地解决高并发的访问问题。但是,如果不进行配置优化,会影响服务器的性能。下面是一些在Nginx服务器上进行配置优化的方案: 控制进程数:在 Nginx 中可以通过 worker_processes 来设置 Nginx 派生出的 worker 进程的数量,一般来说,worker 进程…

    Nginx 2023年5月16日
    00
  • Nginx安装与使用教程详解

    Nginx安装与使用教程详解 Nginx是一款高性能、轻量级的HTTP服务器和反向代理服务器,具有内存占用少、可扩展性好的特点。以下是Nginx的安装与使用教程。 安装Nginx 安装Nginx的方式有多种,这里介绍在Ubuntu系统下的安装方法。打开终端,输入以下命令: sudo apt-get update sudo apt-get install ng…

    Nginx 2023年5月16日
    00
  • CentOS 中Nginx的安装方法

    下面是 CentOS 中 Nginx 的安装方法。 安装前准备 由于 CentOS 系统默认安装 yum 软件管理器,所以我们可以使用 yum 命令安装 Nginx。在安装之前,我们需要更新 yum 软件包列表并安装一些必须软件包。 运行以下命令更新软件包列表: sudo yum -y update 在更新之后,我们需要安装一些必需软件包,以便能够顺利安装 …

    Nginx 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部