Nginx+Keepalived 实现反代 负载均衡 高可用(HA)配置

Nginx+Keepalived实现反代负载均衡高可用(HA)配置

Nginx+Keepalived实现反代负载均衡高可用配置


OS


IP


子网掩码


路由网关


Centos6.6

nginx

Keepalived


Eth0:192.168.26.210


255.255.252.0


192.168.25.3


VIP:192.168.27.210


Centos6.6

Nginx

Keepalived


Eth0:192.168.26.211


255.255.252.0


192.168.25.3


VIP:192.168.27.210


Centos6.6(WEB)

(nginx/apache)


Eth0:192.168.26.212


255.255.252.0


192.168.25.3


Centos6.6(WEB)

(nginx/apache)


Eth0:192.168.26.218


255.255.252.0


192.168.25.3

后端:192.168.26.212和192.168.26.218服务器配置安装这里略过。

192.168.26.210和192.168.26.211安装Keepalived 和Nginx:

Yum install nginx

编辑配置文件:vim /usr/local/nginx/conf/nginx.conf

#user  nobody;

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  0;

keepalive_timeout  65;

upstream nginx.jerry.com {

# ip_hash;

server 192.168.26.212:80;

server 192.168.26.218:80;

}

#gzip  on;

server {

listen       80;

server_name  nginx.jerry.com;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {

root   html;

index  index.html index.htm;

proxy_pass http://nginx.jerry.com;

}

#error_page  404              /404.html;

# redirect server error pages to the static page /50x.html

#

error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80

#

#location ~ \.php$ {

#    proxy_pass   http://127.0.0.1;

#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

#

#location ~ \.php$ {

#    root           html;

#    fastcgi_pass   127.0.0.1:9000;

#    fastcgi_index  index.php;

#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

#    include        fastcgi_params;

#}

# deny access to .htaccess files, if Apache‘s document root

# concurs with nginx‘s one

#

#location ~ /\.ht {

#    deny  all;

#}

}

# another virtual host using mix of IP-, name-, and port-based configuration

#

#server {

#    listen       8000;

#    listen       somename:8080;

#    server_name  somename  alias  another.alias;

#    location / {

#        root   html;

#        index  index.html index.htm;

#    }

#}

# HTTPS server

#

#server {

#    listen       443 ssl;

#    server_name  localhost;

#    ssl_certificate      cert.pem;

#    ssl_certificate_key  cert.key;

#    ssl_session_cache    shared:SSL:1m;

#    ssl_session_timeout  5m;

#    ssl_ciphers  HIGH:!aNULL:!MD5;

#    ssl_prefer_server_ciphers  on;

#    location / {

#        root   html;

#        index  index.html index.htm;

#    }

#}

}

注意:192.168.26.211安装nginx配置完全相同这里略过。

192.168.26.210安装keepalived。

yum install -y keepalived

安装成功后编辑配置文件:vim /etc/keepalived/keepalived.conf

Keepalived配置文件:keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]

[email protected]

}

notification_email_from [email protected]

smtp_server smtp.hysec.com

smtp_connect_timeout 30

router_id nginx

}

vrrp_script Monitor_Nginx {

script "/etc/keepalived/chk_nginx.sh"

interval 2

weight 2

}

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

track_script {

Monitor_Nginx

}

virtual_ipaddress {

192.168.27.210

}

}

Nginx状态检测脚本:vim /etc/keepalived/chk_nginx.sh

#!/bin/bash

A=`ps -C nginx --no-header |wc -l`

if [ $A -eq 0 ];then

echo ‘nginx server is died‘

/etc/init.d/keepalived stop

fi

192.168.26.211keepalived配置文件基本相同:

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]

[email protected]

}

notification_email_from [email protected]

smtp_server smtp.hysec.com

smtp_connect_timeout 30

router_id nginx

}

vrrp_script Monitor_Nginx {

script "/etc/keepalived/chk_nginx.sh"

interval 2

weight 2

}

vrrp_instance VI_1 {

state BACKUP

interface eth0

virtual_router_id 51

priority 99

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

track_script {

Monitor_Nginx

}

virtual_ipaddress {

192.168.27.210

}

}

Nginx状态检测脚本:vim /etc/keepalived/chk_nginx.sh

#!/bin/bash

A=`ps -C nginx --no-header |wc -l`

if [ $A -eq 0 ];then

echo ‘nginx server is died‘

/etc/init.d/keepalived stop

fi

安装完成后启动NGINX和keepalived服务。

通过vip:192.168.27.210访问网站:

http://192.168.27.210

访问成功实现了RR负载均衡。

测试通过域名访问网站:http://nginx.jerry.com

同样实现了RR负载均衡。

再把192.168.26.210上的NGINX关闭,测试能否实现vip转移(ha)

仍然可以访问:

测试成功

基于ip_hash访问效果(配置前端NGINX参数)

时间: 2024-10-26 00:05:58

Nginx+Keepalived 实现反代 负载均衡 高可用(HA)配置的相关文章

nginx做前端反代负载均衡,后端httpd+tomcat

实验内容:用nginx做前端反代负载均衡后端httpd+tomcat 实验环境:物理机win7,虚拟机centos7: node1:172.18.11.111 httpd+tomcat node2:172.18.11.112 httpd+tomcat node3:172.18.11.113 nginx反代负载均衡 说明:httpd有两种方式与tomcat通信: (1)httpd可使用http模块反代tomcat,此时tomcat使用http链接器: (2)httpd还可使用ajp模块反代tomc

Haproxy+keepalived实现双主负载均衡高可用集群

项目说明 1.         使用LVS负载均衡用户请求到后端web服务器,并且实现健康状态检查 2.         使用keepalived高可用LVS,避免LVS单点故障 3.         集群中分别在LK-01和LK-02运行一个VIP地址,实现LVS双主 4.         用户通过DNS轮训的方式实现访问集群的负载均衡(不演示) 实验拓扑 环境介绍: IP地址 功能描述 HK-01 172.16.4.100 调度用户请求到后端web服务器,并且和LK-02互为备份 HK-02

MySQL主从复制与lvs+keepalived单点写入读负载均衡高可用实验【转】

一.环境Master(主机A):192.168.1.1Slave(主机B) :192.168.1.2  W-VIP(写入)  :192.168.1.3 R-VIP(读取)  :192.168.1.4 Client(测试) :192.168.1.100 操作系统版本:CentOS release 6.4MySQL数据库版本:5.6.14keepalived版本:1.2.7LVS版本:1.26 所有环境均为虚拟机 二.设计思路 1. 服务器A和B,通过mysql的slave进程同步数据.2. 通过k

nginx+keepalived简单实现双击热备-高可用HA

主:192.168.1.2_nginx 备:192.169.1.3_nginx nginx部署情况: 新建运行账号:useradd -s /sbin/nologin nginx nginx账号密码:123456 部署路径:/usr/local/nginx/ nginx部署步骤: 1.解压pcre-8.38.tar.gz和nginx-1.8.1.tar.gz至nginx家目录 2.cd /root/nginx-1.8.1/ 3../configure --prefix=/usr/local/ngi

CentOS Linux 负载均衡高可用WEB集群之Nginx+Keepalived配置

Nginx+Keepalived实现负载均衡高可用的WEB服务集群,nginx作为负载均衡器,keepalived作为高可用,当其中的一台负载均衡器(nginx)发生故障时可以迅速切换到备用的负载均衡器(nginx),保持业务的连续性. 1.服务器的环境配置及IP分配 操作系统:CentOS release 6.7 (Final) nginx版本:nginx/1.8.0 keepalived版本:Keepalived v1.2.13 Nginx + keepalived服务器的IP分配表 服务器

Nginx+Keepalived负载均衡高可用(双机热备)

Nginx+Keepalived负载均衡高可用(双机热备) 1.1 Nginx安装及配置 1.2 Keepalived安装及配置 1.3 WebServer安装 1.4 测试Nginx+Keepalived 环境如下: CentOS 6.4_64K eepalived-1.2.12 Nginx-1.4.4 vip:192.168.10.50 master:192.168.10.11 backup:192.168.10.12 webserver1:192.168.10.13 webserver2:

Nginx + Keepalived(主备模式)实现负载均衡高可用浅析

概述 目前关于负载均衡和高可用的架构方案能找到相当多且详尽的资料,此篇是自己学习相关内容的一个总结,防止将来遗忘再次重新查找资料,也避免踩相同的坑. 此次配置的负载均衡与高可用架构:Nginx + Keepalived(主备模式),Nginx 使用反向代理实现七层负载均衡. 众所周知,Nginx 是一款自由的.开源的.高性能HTTP服务器和反向代理服务器,也是一个IMAP.POP3.SMTP代理服务器. 也就是说Nginx本身就可以托管网站(类似于Tomcat一样),进行HTTP服务处理,也可以

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

一.负载均衡高可用 Nginx作为负载均衡器,所有请求都到了Nginx,可见Nginx处于非常重点的位置,如果Nginx服务器宕机后端web服务将无法提供服务,影响严重. 为了避免负载均衡服务器的宕机故障,需要建立一个备份机.主备机上都运行高可用(High Availability)监控程序,通过传送心跳信息来监控对方的运行状况.当备份机不能在一定的时间内收到对方的正常心跳时,它就接管主服务器的服务IP并继续提供负载均衡服务:当备份管理器又从主管理器收到"I am alive"这样的信

CentOS Linux 负载均衡高可用WEB集群之LVS+Keepalived配置

CentOS Linux 负载均衡高可用WEB集群之LVS+Keepalived配置 LB集群是locd balance集群的简称.翻译成中文是:负载均衡集群的意思:集群是一组相互独立的.通过高速网络互联的计算机相互之间构成一个组合,并以单一的系统的模式加以管理.LVS是Linux Virtual Server的简写,翻译中文是Linux虚拟服务器,是一个虚拟的服务器集群系统. 负载均衡集群:是为了企业提供更为实用,性价比更高的系统机构解决方案.负载均衡集群把用户的请求尽可能的平均分发到集群的各