nginx+keepalived高可用搭建的详细步骤

2024-06-19 05:04

本文主要是介绍nginx+keepalived高可用搭建的详细步骤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

现在有2台机器,10.5.100.3610.5.100.37,分别在这2台机器上面部署nginx和keepalived,然后利用keepalived对nginx做高可用。

1,安装好nginx,使用的是

yum install nginx -y

2,修改nginx的配置文件nginx.conf

nginx的配置文件nginx.conf的存放地址在/etc/nginx/nginx.conf

vim /etc/nginx/nginx.conf

把以下这些内容写入nginx.conf

user  root;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  120s;gzip  on;#cda服务upstream cda_server{server   10.5.100.36:8099 weight=1 max_fails=3 fail_timeout=10;server   10.5.100.37:8099 weight=1 max_fails=3 fail_timeout=10;}server {#nginx端口listen       6085;  server_name  localhost;client_max_body_size 20m;location / {proxy_pass http://cda_server;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $remote_addr;}}
}

3,启动nginx并验证

启动

systemctl enable nginx
systemctl start nginx

验证

telnet 10.5.100.36  6085
telnet 10.5.100.37  6085
  • 以上3个步骤分别在2台机器上实施一下。

4,Keepalived安装,以及keepalived配置文件的编写

可以采用编译安装,也可以使用yum安装。在这里我是用yum安装。并且还指定了版本号。你们想要啥版本可以去yum list keepalived去查看一下。

yum install -y keepalived-1.3.5-19.el7.x86_64 
cd /etc/keepalived

把以下内容写入/etc/keepalived/keepalived.conf里面去

! Configuration File for keepalived
global_defs {router_id cdascript_user rootenable_script_security
}vrrp_script check_ng 
{   script "/etc/keepalived/check_ng.sh"interval 2weight 2
}vrrp_instance VI_1 {#36 MASTER 37 BACKUP
state MASTER
#网关需要修改 按实际的来interface ens32virtual_router_id 36
mcast_src_ip 10.5.100.36
#权重 MASTER比BACKUP大priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}
virtual_ipaddress {#虚拟IP 需要修改 主备一致10.5.100.201}track_script {check_ng}
}virtual_server 10.5.100.201 6085 {delay_loop 3lvs_sched rrlvs_method DRprotocol TCPreal_server 10.5.100.36 6085 {weight 1}
}

5, 写入/etc/keepalived/check_ng.sh

vim /etc/keepalived/check_ng.sh

把以下内容写入到/etc/keepalived/check_ng.sh

#!/bin/bash
#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; then/usr/local/nginx/sbin/nginxn2=`ps -C nginx --no-heading|wc -l`if [ $n2 -eq "0"  ]; thenecho "$d nginx down,keepalived will stop" >> /etc/keepalived/check_ng.logsystemctl stop keepalivedfi
fi

然后再修改一下权限

chmod +x /etc/keepalived/check_ng.sh

6,启动keepalived和验证

启动

systemctl enable keepalived
systemctl start keepalived

验证

telnet 虚拟ip  6085
telnet 虚拟ip  6085
  • 同样的,4,5,6三个步骤也要在两台机器分别都走一遍

这篇关于nginx+keepalived高可用搭建的详细步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1074078

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测