环境:

两台后端web,一台代理服务器

web1:eth0:192.168.2.100/24   httpd做一个web

web2:eth0:192.168.2.200/24   httpd做一个web

proxy:eth0:192.168.2.5/24

代理服务器有什么好处?

1.隐藏后端真实服务器信,有一定安全作用.

2.负载调度器,实现负载均衡的作用.

3.健康检查,实现状态检查,自动添加剔除集群.

在代理服务器nginx conf配置中在server之上使用upstream来定义后端集群

http{

......................

  upstream webproxy {          //定义集群名字叫proxy
    server 192.168.2.100:80;    //后端服务器1IP+PORT
    server 192.168.2.200:80;    //后端服务器2IP+PORT
  }

  server {

    listen 80;

    server_name localhost;

    location / {

       proxy_pass http://webproxy;

    }

  }

  server {

  }

}

重启nginx重新载入配置文件初步测试:

看到调度器自动转到web1 和 web2 且使用轮询算法.

在nginx upstream中可以指定后端服务器权重等参数.

upstream webproxy {          //定义集群名字叫proxy
    server 192.168.2.100:80 weight=1 max_fails=1 fail_timeout=30;;    
    server 192.168.2.200:80 weight=2 max_fails=2 fail_timeout=30;;

    server 192.168.2.201:80 down;

}

其中参数weight可以设置后台服务器的权重,max_fails可以设置后台服务器的失败次数,fail_timeout可以设置后台服务器的失败超时时间,down标记服务器已关机,不再参与集群调度.

wigth默认值为1,fail_timeout单位为秒.

在nginx upstream中还可以指定算法

upstream webproxy {          //定义集群名字叫proxy

    ip_hash;
    server 192.168.2.100:80 weight=1 max_fails=1 fail_timeout=30;;    
    server 192.168.2.200:80 weight=2 max_fails=2 fail_timeout=30;;

    server 192.168.2.201:80 down;

}

nginx目前支持3种调度算法:

轮询(默认):逐一循环调度

weight:指定轮询几率,权重值与访问率成正比 2 比 1多一倍的访问量

ip_hash:根据客户端IP分配固定的后端服务器

nginx篇中级用法之反向代理(七层调度)的更多相关文章

  1. Centos 7 上使用nginx为Node.js配置反向代理时错误:(13: Permission denied) while connecting to upstream

    错误来源:Centos 7 上使用nginx为Node.js配置反向代理时产生(13: Permission denied) while connecting to upstream的错误 nginx ...

  2. Nginx服务器部署 负载均衡 反向代理

    Nginx服务器部署负载均衡反向代理 LVS Nginx HAProxy的优缺点 三种负载均衡器的优缺点说明如下: LVS的优点: 1.抗负载能力强.工作在第4层仅作分发之用,没有流量的产生,这个特点 ...

  3. 使用Nginx对.NetCore站点进行反向代理

    前言 之前的博客我已经在Linux上部署好了.NetCore站点且通过Supervisor对站点进行了进程守护,同时也安装好了Nginx.Nginx的用处非常大,还是简单说下,它最大的功能就是方便我们 ...

  4. nginx配置虚拟主机、反向代理和负载均衡

    为了实现这个功能,需要修改nginx的配置文件,将nginx.conf清理一下,使结构更清晰. worker_processes ; events { worker_connections ; } h ...

  5. Nginx服务器的使用与反向代理负载均衡

    目录 Nginx服务器 一:什么是Nginx? 什么是Nginx - Nginx与其他服努器的性能比较 二:如何在Linux中搭建Nginx服务器? 常见的错误 三:Nginx的反向代理和负载均衡 什 ...

  6. Nginx 之六: Nginx服务器的正向及反向代理功能

    一:Nginx作为正向代理服务器: 1.正向代理:代理(proxy)服务也可以称为是正向代理,指的是将服务器部署在公司的网关,代理公司内部员工上外网的请求,可以起到一定的安全作用和管理限制作用,正向代 ...

  7. nginx服务器开启缓存、反向代理

    一.反向代理配置 1.反向代理服务器配置如下 反向代理就是需要这一行proxy_pass来完成.当我们要访问后端web服务器的时候,我们只需要访问代理服务器就可以了,此时代理服务器就充当后端web服务 ...

  8. Nginx HTTP负载均衡和反向代理的配置与优化

    一.什么是负载均衡和反向代理 1.负载均衡 负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器具有等价的地位,都可以单独提供服务而无需其他服务的辅助.通过某种负载分担技术,将外部发送来的 ...

  9. 前nginx后Apache+Node反向代理

    前几天一直在被一个问题困扰,机器上跑的站点太多了,Apache上面有十几个,NodeJS的也有一堆,记端口号都要烦死,于是萌生了使用反向代理的想法.出发点貌似太low了,完全不是出于负载均衡.高并发什 ...

随机推荐

  1. springboot与docker整合

    一.springboot与docker整合 a.创建Dockerfile FROM java MAINTAINER "Wing"<1561815137@qq.com> ...

  2. sbt 学习笔记(1)sbt安装和交互式界面使用

    下载sbt: http://www.scala-sbt.org/download.html 解压zip文件F:\sbt-0.13.15 配置环境变量 如果需要可以修改F:\sbt-0.13.15\sb ...

  3. 利用Dockerfile部署SpringBoot项目

    利用Dockerfile部署SpringBoot项目 1.创建一个SpringBooot项目并且打成jar包 2.在Linux中创建一个文件夹,来做docker测试 [root@izwz90lvzs7 ...

  4. 项目三:ssm仓库管理系统

    声明:项目来源于网络,尊重原创,学习使用,仅在此记录 项目介绍 ssm仓库管理系统,功能模块:客户信息管理,供应商管理,货物管理,仓库管理,仓库管理员管理,仓库出入口管理,仓库库存记录管理,系统日志管 ...

  5. DataTableHelper.cs 将DataTable转换为List,将List转换为DataTable的实现类

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  6. Chrome 和 Chromedriver 的安装和配置

    1.Chrome 下载安装地址:https://www.google.com/intl/zh-CN_ALL/chrome/ 2.Chromedriver的安装 方法一: (1) brew cask i ...

  7. 算法学习之剑指offer(九)

    一 题目描述 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). public class Solution ...

  8. cobalt strike笔记-CS与MSF,Armitage,Empire互转shell

    0x01 Metasploit派生shell给Cobaltstrike 生成木马: msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata ...

  9. vc++木马源码免杀一些常用方法

    1.字符串连接 ////////////////////////////////////////////////////////////把字符串"canxin"连接起来(字符串连接 ...

  10. window 下Notepad++设置为文本文件的默认打开程序失败

    1.右键Notepad++的可执行程序,选择"属性"  -- "兼容性" , 设置Notepad++以管理员的身份运行 2.打开Notepad++ ," ...