Nginx+keepalived实现负载均衡和高可用性 in ubuntu

web集群学习:nginx+keepalived实现负载均衡高可用性 ​ 在Keepalived+ Nginx 高可用负载均衡架构中,keepalived 负责实现高可用。它是一个高性能的服务器高可用或者热备解决方案,Keepalived主要来防止服务器单点故障的发生问题,可以通过其与Nginx的配合实现Web服务器端的高可用。使用keepalived可以保证nginx的高可用,他能监控nginx的健康状态,当nginx出现宕机时自动主备切换。 ​ 阅读详情

Nginx+keepalived实现负载均衡和高可用性 in ubuntu

 转:http://alec03711.iteye.com/blog/1897095


使用Nginx已经有很长一段时间,但是最近才去实践利用Nginx做负载均衡和高可用性。

大致思路:根据keepalived的特性,通过一个虚拟ip来实现主从服务器的切换,如果一台服务器宕机,可以自动切换到另一台备份服务器,从而不影响用户的访问。

以下是我的安装配置步骤,请大家参考指正。

1:服务器准备

准备两台ubuntu虚拟主机服务器,对应的IP分别是 192.168.1.100   192.168.1.200

两台主机的ip一定要在相同的网段

2:虚拟IP准备

sudo ifconfig  eth0:0 192.168.1.150 netmask 255.255.255.0

然后查看ifconfig,不难发现与之前的ifconfig 的不同。也可以通过ip a查看,对应的网卡eth0有两个ipaddress

两台虚拟主机要使用相同的虚拟IP: 192.168.1.150

 

3:安装nginx

sudo apt-get install nginx

安装完成之后,ps -ef|grep nginx 查看nginx的进程,如果没问题,可以查看http://192.168.1.100  如果显示正常,说明nginx服务正常启动。

nginx的配置如下:

C代码   收藏代码
  1. user www-data;  
  2. worker_processes 4;  
  3. pid /var/run/nginx.pid;  
  4.   
  5. events {  
  6.         worker_connections 1024;  
  7.         # multi_accept on;  
  8. }  
  9.   
  10. http {  
  11.   
  12.         ##  
  13.         # Basic Settings  
  14.         ##  
  15.   
  16.         sendfile on;  
  17.         tcp_nopush on;  
  18.         tcp_nodelay on;  
  19.         keepalive_timeout 65;  
  20.         fastcgi_buffer_size  64k;  
  21.         fastcgi_buffers      16  64k;  
  22.   
  23.         types_hash_max_size 2048;  
  24.         # server_tokens off;  
  25.   
  26.         # server_names_hash_bucket_size 64;  
  27.         # server_name_in_redirect off;  
  28.   
  29.         include /etc/nginx/mime.types;  
  30.         default_type application/octet-stream;  
  31.   
  32.         ##  
  33.         # Logging Settings  
  34.         ##  
  35.   
  36.         access_log /var/log/nginx/access.log;  
  37.         error_log /var/log/nginx/error.log;  
  38.   
  39.         upstream server_lb {  
  40.             server 192.168.1.100:9000; //9000为php的端口  
  41.             server 192.168.1.200:9000;  
  42.             ip_hash;  
  43.         }  
  44.   
  45.   
  46.   
  47.     server {  
  48.         listen       80;  
  49.         server_name  _;  
  50.         #root /var/www/html/demo/public;  
  51.         #charset koi8-r;  
  52.   
  53.         try_files $uri $uri/ $uri.php?$args /index.php;  
  54.   
  55.         location ~ \.php$ {  
  56.             fastcgi_pass server_lb;//通过fastcgi进行负载均衡  
  57.             include fastcgi_params;  
  58.         }  
  59.         error_page   500 502 503 504  /50x.html;  
  60.         location = /50x.html {  
  61.             root   html;  
  62.         }  
  63.     }  
  64.       
  65. }  

 

两台服务器的nginx配置一致

 

4:安装keepalived

sudo apt-get install keepalived

安装完成之后,查看进程发现并没有keepalived的进程,这是因为keepalived配置文件不存在,需要用户自己创建一个keepalived.conf文件存放到/etc/keepalived目录

 

Sh代码   收藏代码
  1. vrrp_script chk_nginx {  
  2.  script "/etc/keepalived/check_nginx.sh" //检测nginx进程的脚本  
  3.  interval 2  
  4.  weight 2  
  5. }  
  6.   
  7. global_defs {  
  8.  notification_email {  
  9.       //可以添加邮件提醒  
  10.  }  
  11. }  
  12. vrrp_instance VI_1 {  
  13.  state MASTER //主服务器  
  14.  interface eth0  
  15.  virtual_router_id 51   
  16.  mcast_src_ip 192.168.1.100  
  17.  priority 250  
  18.  advert_int 1  
  19.   
  20.  authentication {  
  21.         auth_type PASS  
  22.         auth_pass 123456  
  23.  }  
  24.  track_script {  
  25.         chk_nginx  
  26.  }  
  27.  virtual_ipaddress {  
  28.         192.168.1.150  
  29.  }  
  30. }  

 

 

两台服务器的keepalived.conf文件除了优先级,state和mcast_src_ip不一样,其他的完全一致,但是需要注意的几点是:

  • 主服务器的state为MASTER,从服务器的state为BACKUP
  • 主服务器的priority一定要比从服务器的priority大
  • mcast_src_ip就是对应服务器的局域网ip
  • “{”前面一定要有个空格,不能跟前面的字符连起来,否则出现问题很难发现
  • check_nginx.sh脚本文件的执行权限一定要正确。
  • check_nginx.sh的代码如下:
    Sh代码   收藏代码
    1. #more /etc/keepalived/check_http.sh  
    2. #!/bin/bash  
    3. #代码一定注意空格,逻辑就是:如果nginx进程不存在则启动nginx,如果nginx无法启动则kill掉keepalived所有进程  
    4. A=`ps -C nginx --no-header |wc -l`  
    5. if [ $A -eq 0 ];then  
    6.  /etc/init.d/nginx start  
    7. sleep 3  
    8. if [ `ps -C nginx --no-header |wc -l`-eq 0 ];then  
    9.  killall keepalived  
    10. fi  
    11. fi  

配置文件完成之后,sudo /etc/init.d/keepalived start,然后再查看下keepalived的进程是否存在,如果存在,再检查keepalived的log(sudo tail /var/log/syslog),如果看到nginx Keepalived_vrrp: VRRP_Script(chk_nginx) succeeded,则说明配置成功。

两台服务器的keepalived配置和启动命令是一致的

 

5:测试

因为check_nginx的缘故,当启动keepalived是,nginx也会同时被启动,所以此时,查看nginx和keepalived的进程应该都是存在的,否则就是配置有问题。

现在访问http://192.168.1.150,如果访问正常,此时应该显示的是主服务器的页面,也就是192.168.1.100的页面,否则也是配置有问题。

然后在关闭主服务器的nginx访问,访问http://192.168.1.150页面应该正常,因为check_nginx的缘故。

再关闭主服务器的keepalived进程,则此时访问http://192.168.1.150应该显示的是从服务器的页面,也就是192.168.1.200的页面,否则也是配置不正确。

如果再关闭从服务器的nginx和keepalived则http://192.168.1.150无法访问。

 

以上就是我的配置步骤,很粗略,还希望大家多指点酷。

另外,以下是版本信息

ubuntu:Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-29-generic x86_64)

Keepalived: v1.2.2

nginx version: nginx/1.1.19


离线配置lvs+keepalived+nginx高可用 linux离线配置lvs+keepalived+nginx高可用教程1 环境配置1.1服务器配置1.2工具安装2 Keepalived服务器配置2.1配置Keepalived-master2.2配置Keepalived-backup2.3验证master、backup服务器是否配置成功3 nginx服务器配置3.1 nginx1(server4)服务器配置3.2 nginx2(server5)服务器配置 1 环境配置 1.1服务器配置 准备5台虚拟机,作用如下表: 作用名称(虚拟机名称) IP 阅读详情

相关推荐

LVS + Keepalived + Nginx 实现高可用

LVS + Keepalived + Nginx 搭建高可用web服务体系

panthsoni的博客 2155

ubuntu 20 下搭建高可用nginx主备方式

ubuntu20下利用keepalived实现nginx的高可用

DarcyZ_SSM的博客 1130

实现Ubuntu上的负载均衡服务器:Nginx与Keepalived

通过以上步骤,你已经成功在Ubuntu上配置了基于Nginx和Keepalived的负载均衡服务器。Nginx将会将流量分发到多个后端服务器上,并且Keepalived确保负载均衡服务器的高可用性。负载均衡是为了提高服务器的可扩展性和可靠性,将流量分发到多个后端服务器上,以避免单一服务器的过载和故障。现在,我们已经成功配置了Nginx和Keepalived,可以进行负载均衡的测试。首先,我们需要安装Nginx作为我们的负载均衡服务器的前端。的上游服务器组,其中列出了多个后端服务器的地址。

OUDKE的博客 303

Nginx+keepalived 实现负载均衡

Nginx通过Upstream模块实现负载均衡 配置安装 nginx, 所有的机器,关闭防火墙和selinux [root@nginx-proxy ~]# cd /etc/yum.repos.d/ [root@nginx-proxy yum.repos.d]# vim nginx.repo [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck

m0_49190412的博客 403

使用keepalived来完成nginx的高可用

本文详细的描述了使用keepalived,来实现nginx的高可用,通过了实际环境的验证,很实用~

Keepalived+Nginx实现高可用Web负载均衡

Keepalived+Nginx实现高可用Web负载均衡

ubuntu22 搭建nginx高可用集群(VIP(keepalived) + 负载均衡)

ps: 如果要使用tcp流转发:需用二进制包安装 make编译时加入stream流的参数。推荐直接安装openresty【默认支持stream等nginx模块,还附带了很多常用的lua库】#nginx服务默认占用80 修改默认端口为81。

qq_42152032的博客 1276

汇付天下聚合支付自助接入全流程详解(附JAVA/非JAVA环境配置指南)

本文详细解析了汇付天下聚合支付的自助接入全流程,涵盖JAVA与非JAVA环境下的实战配置。从接入前准备、架构理解、密钥获取,到JAVA SDK集成、核心支付代码拆解,以及Node.js/Python等环境的裸接口对接、签名生成与异步通知处理,提供了完整的避坑指南和上线检查清单,帮助开发者高效、稳健地完成支付系统集成。

wdx01234567的博客 521

转——Nginx+keepalived实现负载均衡和高可用性 in ubuntu

使用Nginx已经有很长一段时间,但是最近才去实践利用Nginx做负载均衡和高可用性。 大致思路:根据keepalived的特性,通过一个虚拟ip来实现主从服务器的切换,如果一台服务器宕机,可以自动切换到另一台备份服务器,从而不影响用户的访问。 以下是我的安装配置步骤,请大家参考指正。 1:服务器准备 准备两台ubuntu虚拟主机服务器,对应的IP分别是 192.168.1.100 1...

weixin_30449239的博客 80

DOSBOX 0.74模拟器安装Windows 95

DosBox本身带有5.0版的DOS系统,启动后虚拟一个Z盘存放有Dosbox特有的外部指令,如config.com、imgmount.com等,经测试,可以顺利安装各版本的windows 3.1系统,但是不能安装win95,需要用原版的dos镜像启动才能安装。1. 获取启动盘镜像文件 下载Win95启动软盘镜像文件,名为boot.img,放到DosBox 0.74的目录下。2. 制作硬盘镜像文件

xjnzhidao的博客 9313

Unity资源逆向解析:从APK到AssetStudio的完整实战

本文详细介绍了Unity资源逆向解析的全流程,从APK解包到使用AssetStudio深度解析Unity游戏资源。通过实战案例演示如何提取《植物大战僵尸》等游戏的素材,包括贴图、音频和3D模型,帮助开发者掌握Unity游戏逆向工程的核心技术。

weixin_30664051的博客 475

Ubuntu下keepalived和nginx实现高可用性负载均衡

概述 1. 前导知识 Ubuntu安装keepalived Ubuntu安装nginx并配置负载均衡 2. 本文项目目标 在Ubuntu下使用keepalived和nginx搭建高可用性负载均衡。keepalived虚拟IP为192.168.229.130,两台服务器的IP地址分别为192.168.229.128,192.168.229.129。两台服务器中81端口模拟网站,80端口为负载均衡端口。负载均衡的配置详情请参见《Ubuntu安装nginx并配置负载均衡》 3. 系统环境 Ubuntu 20.0

weixin_41621706的博客 2550

CH340以及CH系列USB转串口驱动下载

在之前使用USB转串口时,很多时候大家可能会不知道去哪下载驱动,然后百度随便下载一个,但往往鱼龙混杂且版本不一,所以今天特意整理一下CH340驱动以及CH系列的官方驱动下载地址,方便大家进行下载也方便自己后期查找,所有链接皆指向官方下载链接,每次下载都可获取官方当前最新驱动。 CH340/CH341 Windows驱动下载链接:CH341SER.EXE下载链接 Linux驱动下载链接:CH341SER_LINUX.ZIP下载链接 Andr...

OIDCAT的博客 4万+

如何在Ubuntu 24.04上通过配置Nginx与Keepalived实现高可用负载均衡集群

本教程从架构设计、软硬件配置、细节参数、代码示例、验证测试到性能数据评估提供了完整实现路径。在 Ubuntu 24.04 环境下结合 Nginx 和 Keepalived 可以构建高可用、可扩展、可监控的负载均衡集群,适用于业务流量入口的重要服务节点。如需进一步扩展到 HTTPS/TLS 终止、动态服务发现(Consul、Etcd)、自动证书管理(Certbot + DNS API)或 Prometheus 监控告警,可在现有架构基础上继续迭代。

A5数据 1237

CODESYS安装全攻略:从下载到配置的保姆级教程(含常见问题解决)

本文提供了一份详细的CODESYS安装与配置指南,涵盖从系统环境准备、安装包下载、Development System安装到Runtime System配置的全过程。教程重点解决了安装过程中的常见权限、兼容性和连接问题,并指导用户完成第一个PLC程序的创建与调试,帮助工业自动化开发者快速上手这一通用开发平台。

kkk56的博客 421

基于STM32的智能婴儿床设计(蓝牙通信+摄像头监控)_315

本项目设计并实现了一款基于STM32微控制器的智能婴儿床系统,通过多种传感器和智能控制模块为家长提供更便捷和高效的婴儿照护解决方案。系统包括婴儿哭泣检测、湿度监测、空气质量检测、温度监控等多项功能,并通过蓝牙与手机APP进行数据传输和远程控制。婴儿床内置摇摇床和安抚音乐播放功能,能够在婴儿哭泣时自动启动摇摇床并播放安抚音乐。此外,系统还支持摄像头远程监控,让家长实时查看婴儿的状态。整个系统采用STM32F103RCT6作为核心控制单元,结合声音传感器、湿度传感器、MQ135空气质量传感器。

865

Ubuntu 下安装 keepalived 和 Nginx负载均衡 转发

Nginx负载均衡  https://www.cnblogs.com/knowledgesea/p/5199046.html Ubuntu 下安装  keepalived 转载自:https://www.cnblogs.com/guoximing/p/9390269.html 对文章中相关命令的整理: ifconfig 或者 ip addr list 查看网卡标识和对应的网段IP地址...

You can either travel or read,but either your body or soul must be on the way. 755

推免保研夏令营/预推免面试记录—北航网安

链接:https://pan.baidu.com/s/1vkP3EzbVrCc8a7wgQuUZgQ?链接:https://pan.baidu.com/s/1n4EFS2c9WLAfQn91CP4j2g?链接:https://pan.baidu.com/s/1VVNNSfcNDWjXhVhH3MtNjA?上面五个比例基本为:1:5:2:1:1。面试时间:当天上午面试,但是没面完,下午吃了饭之后又继续面试。--来自百度网盘超级会员V5的分享。--来自百度网盘超级会员V5的分享。

admin的博客 3012

nginx负载均衡和keepalived配置

注:所用linux系统为nbuntu系统,nginx版本为1.4.2,并且ngninx已经可以正常进行启动并访问。 负载均衡:将多个服务器或者同一台服务器的多个端口统一到一起,从而实现将一个任务分摊到多个单元上,从而实现多个操作单元共同完成任务。 keepalived:通过虚拟路由冗余来实现高可用功能,将原来的路由器屏蔽掉,来虚拟一个路由来对外提供服务,并且当nginx宕机之后,切换到备用的ngi...

qq_40115821的博客 483

Unity 工具 之 SoftMask软遮罩 实现 UI 边缘渐变过渡的简单使用介绍

目录Unity 工具 之 SoftMask软遮罩 实现 UI 边缘渐变过渡的简单使用介绍一、简单介绍二、Mask 实现的遮罩效果三、Soft Mask 实现遮罩效果四、 Soft Mask 的一些设置五、插件下载Unity 工具类,自己整理的一些游戏开发可能用到的模块,单独独立使用,方便游戏开发。

仙魁XAN 8575

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

高可用负载均衡 ubuntu rsyc nginx upsream keeplive

在 2个 ip 分别是 192.168.247.129 和 192.168.247.131 ubuntu虚拟机上一个给一个 keeplived 配置和说明 ,虚拟ip 192.168.247.100 给出安装过程 原理 配置说明 测试方法。

Gavin_webigger的博客 1846

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Nginx与keepalived实现集群

两台服务器都安装Nginx与keepalived:mater服务器的ip(192.168.200.2)backup服务器的ip(192.168.200.4)将 mater服务器Nginx与keepalived都停掉,在 backup服务器里的浏览器输入http://192.168.188.100,访问Nginx首页备注:192.168.188.100是keepalived的虚拟ip。

ChinaDragon10的博客 1737

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Ubuntu 16.04 Nginx+keepalived 负载均衡

机器IP hostname IP 备注 Master 192.168.1.10 Nginx主机 任务分发 Backup 192.168.1.11 Nginx 备机 node1 192.168.1.12 任务处理1 node2 192.168.1.13 任务处理2 操作系统以及软件版本 OS Ubuntu 16.04 LTS Nginx 1.10.3 Kee...

u014221090的专栏 974

超详细ubuntu22.04部署k8s1.28高可用(一)【多master+keepalived+nginx实现负载均衡】

🚀 本文基于 Ubuntu 22.04 + Kubernetes 1.28,完整演示了一套 生产可落地的 Kubernetes 高可用部署方案,通过 多 Master + Keepalived + Nginx 架构,成功构建了一个稳定、可靠的高可用集群控制平面下一篇 将在此高可用集群基础之上,进一步介绍 Ingress,逐步完善 Kubernetes 的生产级使用体系。

沉淀自己 1838
上一篇: nginx upstream 容错机制
下一篇: nginx
lcathm
博客等级 码龄18年 37粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值