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在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

Python的pandas库基础知识超详细教程

《Python的pandas库基础知识超详细教程》Pandas是Python数据处理核心库,提供Series和DataFrame结构,支持CSV/Excel/SQL等数据源导入及清洗、合并、统计等功能... 目录一、配置环境二、序列和数据表2.1 初始化2.2  获取数值2.3 获取索引2.4 索引取内容2

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚