dns + nginx实现负载均衡

一 搭建环境说明:


服务器公网地址


用途


服务器内网地址


123.56.x.92


Nginx负载兼web服务


10.171.132.57


123.57.x.176


Nginx负载兼Web服务


10.172.235.86

两台服务器上面分别有三个站点,web,app,h5

1  PC站前端    nginx  80

2  H5站前端    nginx+tomcat  28180

3 app客户端   nginx+tomcat  28543

负载均衡实现方式和前提

准备用dns轮询解析来实现负载均衡,并且在两台server上面还同时启用了Nginx负载均衡,两台服务器是互为负载。前提是两台web服务端的网站内容一致。

二 配置文件更改:

1  三个站点具体配置详情

更改nginx负载服务器上面各个站点的端口 

##web的配置文件

server
{
    listen 10.171.132.57:81;
    server_name www.hu.com;
    index index.html index.htm;
    root /data/wwwroot/www.hu.com/;
}

 

##h5配置文件

server
{
    listen 10.171.132.57:82;
    server_name m.hu.com;
    index index.html index.htm;
    root /data/wwwroot/m.hu.com/;
}

## app配置文件

server
{
    listen 10.171.132.57:83;
    server_name s.hu.com;
    index index.html index.htm;
   root  /data/www/nestpc/; 
 
        location ^~ /nestservice/ {
        proxy_pass http://10.171.132.57:28080;        
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP$remote_addr;
        proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;
        proxy_redirect off;
    }
}

同理

按照上面92的操作,在176上面再操作一次(拷贝文件即可),把10.171.132.57都改成10.172.235.86 即可。

2 Nginx负载端配置详情

在92 上面编辑一个配置文件 vi /usr/local/nginx/conf/vhost/ld.conf 

## web端

 upstream www{
    server 10.171.132.57:81;      
    server 10.172.235.86:81 ;     
    ip_hash;
}
server {
     listen 80;
     server_name  www.hu.com;
     location / {
       proxy_pass http://www/;
       proxy_set_header Host $host;
  }
}

##  APP端

upstream s{
    server 10.171.132.57:83 ;    
    server 10.172.235.86:83 ;      
    ip_hash;
}
server {
     listen 80;
     server_name  s.hu.com;           
     location / {
       proxy_pass http://s/;
       proxy_set_header Host $host;
  }
}

##   h5端

upstream h5{
    server 10.171.132.57:82;   
    server 10.172.235.86:82;
    ip_hash;   
}
server {
     listen 80;
     server_name  m.hu.com;
     location / {
       proxy_pass http://h5/;
       proxy_set_header Host $host;
  }
}

到此,配置文件已经全部配置完毕,可以重启nginx服务了

三 验证:

比如当用户访问www.hu.com 这个站点的时候,通过DNS轮询到 Nginx前端,再根据你的配置甩向不同upstream(服务器)如下图:

测试停掉其中一台服务器的nginx看是否可以正常工作

缺点:如果重启nginx会造成3个站点同时启动

时间: 2024-10-23 04:09:35

dns + nginx实现负载均衡的相关文章

Nginx的负载均衡方案详解

Nginx的负载均衡方案详解 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs Nginx的负载均衡方案有: 1.轮询 轮询即Round Robin,根据Nginx配置文件中的顺序,依次把客户端的Web请求分发到不同的后端服务器. 配置的例子如下: http{ upstream sampleapp { server <<dns entry or IP Address(optional with port)>>; server <&l

Bind+Nginx实现负载均衡

Nginx实现负载均衡 1 基础环境 1.1 服务器列表 1.2 DHCP分配内外地址 1.3 端口转发策略 1.4 初始化信息 主机名称 内外IP 系统 实现功能 Upstream 172.16.16.10 Centos 6.5 64位 DNSserver+Nginx实现负载均衡 Nginx-20 172.16.16.20 Centos 6.5 64位 后端nginx提供web服务 Nginx-30 172.16.16.30 Centos 6.5 64位 后端nginx提供web服务 云路由器

Nginx的负载均衡的那点事 (转)

本节就聊聊采用Nginx负载均衡之后碰到的问题: Session问题 文件上传下载 通常解决服务器负载问题,都会通过多服务器分载来解决.常见的解决方案有: 网站入口通过分站链接负载(天空软件站,华军软件园等) DNS轮询 F5物理设备 Nginx等轻量级架构 那我们看看Nginx是如何实现负载均衡的,Nginx的upstream目前支持以下几种方式的分配 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. 2.weight 指定轮询几率,wei

[转帖]利用nginx实现负载均衡 | 哈希算法,sticky模块实现session粘滞

利用nginx实现负载均衡 | 哈希算法,sticky模块实现session粘滞 2018年08月02日 10:06:03 Minza 阅读数 483 https://blog.csdn.net/ha_weii/article/details/81350087 学习一下如何使用sticky 版权声明:创作不易,转载请注明出处 https://blog.csdn.net/ha_weii/article/details/81350087 一,普通的负载均衡 1,启动nginx服务器 之前已经把/us

Nginx做负载均衡时session共享问题详解

用nginx做负载均衡时,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,就会出现很多问题,比如说最常见的登录状态. 再者Nginx连接Memcached集群时,Nignx的请求从memcached服务器中根据key获得了value则直接返回value,如果没有获得到value则去MySQL中查询再返回. location / { set $memcached_key "$request_uri"; #设置请求memcached服务器的key memca

使用nginx+Apache负载均衡及动静分离

使用nginx+Apache负载均衡及动静分离 介绍    LB负载均衡集群分两类: LVS (四层)和 nginx或haproxy (七层)    客户端都是通过访问分发器的VIP来访问网站 在七层中的网站页面有: .php .html .png .jpeg .jsp 等, 有动态页面有静态页面. 需要在应用层基于不同的应用进行分发. 一:实验拓扑图:     二:实验目标 实战:使用Apache+nginx实现动静分离的负载均衡集群 三:实验环境 主机作用分类 主机名 IP地址 安装软件 N

基于nginx的负载均衡概述与实现

前言: 前面我们提到了lvs和keepalived结合起来的高可用负载均衡,lvs根据原目ip地址及端口将其调度转发至后端 的某个主机,是一种四层的实现,因为lvs是四层的,所以不会受限于套接字或打开的文件数量.不过,如果我们想实现一些更高阶的功能,lvs就显得力不从心了,比如基于uri,cookie,header头部信息的负载均衡,此时我们就可以选择一些7层的负载均衡实现,比如nginx或haproxy等.本次我们就先来讲讲nginx的负载均衡把~ 正文: 其实,如果对lvs的各种类型和调度有

Nginx学习——负载均衡

负载均衡 Nginx提供了较多的负载均衡策略,包括加权轮询.IP哈希.fair.一致哈希等.前两个是Nginx官方源码内置的策略,而后面几个都是第三方模块,所以下面我们重点来看前两个内置策略. Nginx默认采用round_robin加权算法,如果要采用IP哈希策略,那么必须在Nginx的配置文件里通过配置指令ip_hash明确指定. 当整个http配置块被Nginx解析完毕之后,会调用各个http模块对应的初始函数.对于模块ngx_http_upstream_module而言,对应的main配

【Nginx】配置Nginx的负载均衡

阅读目录 参考的优秀文章 在本机运行2个Tomcat Nginx的负载均衡配置 参考的优秀文章 tomcat配置文件server.xml详解 AJP协议总结与分析 Using nginx as HTTP load balancer 在本机运行2个Tomcat 现需要运行两个Tomcat,监听不同端口,让Nginx作负载均衡跳转过来.Tomcat版本:apache-tomcat-7.0.69-windows-x64.zip 要在一台机器运行两个Tomcat,要解决端口的冲突,我们只需要D:\gre