一、代理服务器

服务   功能 配置语法 默认 配置位置 配置举例  结果验证 备注
代理服务 反向代理 proxy_pass URL   location、if in location、limit_except这一级来配置

server {

    listen       80;

    server_name  localhost;

    #charset koi8-r;

    #access_log  /var/log/nginx/host.access.log  main;

   location ~ \.php{

       proxy_pass http://172.20.163.135:80;

       root index.html;

}

此时访问http://nginx服务器/1.php  相当于访问了http://172.20.163.135/1.php  
代理服务 正向代理 proxy_pass http://$http_host$request_uri;
$http_host代表要访问的主机名
$request_uri代表要访问的URI
    resolver 114.114.114.114;
    location / {
        proxy_pass http://$http_host$request_uri;
    }
此时挂好代理就可以访问http的网页了,但是不能访问https网页  
代理的扩展 缓冲区 proxy_buffering on|off proxy_buffering on http、server、location这一级来配置

location / {

    proxy_pass http://127.0.0.1:8080;

    proxy_redirect default;

  proxy_set_header Host $http_host;   ===>要访问的目的主机

    proxy_set_header X-Real-IP $remote_addr;   ===>客户端真实IP

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  ==>如果使用代理访问的话使用此方式可获取代理链

  proxy_connect_timeout 30;

    proxy_send_timeout 60;

    proxy_read_timeout 60;

 proxy_buffer_size 32k;

    proxy_buffering on;

    proxy_buffers 4 128k;

    proxy_busy_buffers_size 256k;

    proxy_max_temp_file_size 256k;

}

  尽可能的将请求信息接收完再将数据包统一转发出去
代理的扩展 跳转重定向 proxy_redirect default|off
proxy_redirect redirect replacement
proxy_redirect default http、server、location这一级来配置   反向代理时后端服务器发来301报文时不是把301转发给客户端,而是根据301再去访问被重定向到的地址,拿到最终数据后再返回给客户端
关闭后就直接将301报文转发给客户端
这个选项一般默认即可
代理的扩展 修改头信息

proxy_set_header field value

扩展:proxy_hide_header、proxy_set_body

  http、server、location这一级来配置 proxy_set_header X-Real-IP $remote_addr;
访问后端server时增加X-Real-IP头部,值为$remote_addr
在经过中间这层代理后,后端server就拿不到最初源的一些信息了(比如说真实源IP)。
为了解决这个问题可以用这个方法为数据包再加一个映射的头信息,好让后端server知道真实的源信息

代理的扩展

Nginx作为代理到后端server的超时

proxy_connect_timeout time

扩展:proxy_read_timeout、proxy_send_timeout

proxy_connect_timeout 60s http、server、location这一级来配置  

TCP连接超时

扩展:TCP已经建立的基础上等待回应的时间

测试的时候没测出来有什么效果

二、负载均衡器

功能 配置语法

配置

位置

配置举例

结果验证

备注

负载均衡 upstream name{
    server IP|域名 端口 属性;
}
location / {
        proxy_pass http://name;
    }

http这

一级来

配置

upstream imooc {

     ip_hash;

    server 172.20.163.135:80 weight=5;

    server cctv.com:80;

    server 172.20.163.126:80 backup;

    server 172.20.163.123:80 down;

    server 172.20.163.111:80 max_fails 5;

    server 172.20.163.33:80 fail_timeout 60s;

    server 172.20.163.42:80 max_conns 1024;

}

location / {

proxy_pass http://imooc;

}

访问http://Nginx地址/时

流量会负载均衡到

135、123、126

这三台设备上

后端服务器在负载均衡调度中的状态:

down:当前的server暂时不参与负载均衡

backup:预留的备份服务器(其他主机全部down掉它起来)

max_fails:允许请求失败的次数(健康检查)

fail_timeout:经过max_fails失败后,服务暂停的时间

max_conns:限制后端server最大的接收连接数

调度算法(默认为轮询):

轮询:按时间顺序逐一分配到不同的后端服务器

加权轮询:weight值越大,分配到的概率越高(只要后面加了weight就自动从轮询变为加权轮询)

ip_hash:每个请求按访问的源IP的hash结果分配,这样可以保证一个源IP的每次访问固定的一台后端

server url_hash:按照访问的URL的hash结果来分配请求,每个URL定向到同一个后端服务器

hash关键数值:hash自定义的key

nginx搭建代理服务器与负载均衡器的更多相关文章

  1. 【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器

    一.反向代理:Web服务器的“经纪人” 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从 ...

  2. Nginx搭建反向代理服务器过程详解

    一.反向代理:Web服务器的“经纪人” 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从 ...

  3. Nginx搭建反向代理服务器

    [大型网站技术实践]初级篇:借助Nginx搭建反向代理服务器   一.反向代理:Web服务器的“经纪人” 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受int ...

  4. Nginx 搭建反向代理服务器过程详解

    1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet ...

  5. Windows下使用nginx搭建反向代理服务器

    反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时 ...

  6. 【转】Nginx搭建反向代理服务器过程详解

    阅读目录 1.1 反向代理初印象 1.2 反向代理的作用 2.1 Nginx是神马? 2.2 Nginx的应用现状 2.3 Nginx的核心特点 3.1 准备一个ASP.NET网站部署到IIS服务器集 ...

  7. 【转载】vue-cli搭建的环境,用nginx做代理服务器,访问时显示:Invalid Host header

    来源:https://blog.csdn.net/Cookysurongbin/article/details/86077241 vue-cli搭建的环境,用nginx做代理服务器,访问时显示:Inv ...

  8. 借助Nginx搭建反向代理服务器

    一.反向代理:Web服务器的"经纪人" 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网 ...

  9. nginx搭建http和rtmp协议的流媒体服务器

    nginx搭建http和rtmp协议的流媒体服务器 时间:2013-09-23 23:52来源:佚名 作者:本站 举报 点击:232次 实验目的:让Nginx支持flv和mp4格式文件,同时支持Rtm ...

随机推荐

  1. 检测到无法识别的AP,请升级AP数据库

    0x00 事件 原因是公司新增了两个 AP 设备 TL-AP1202i ,似乎是新的 AP 硬件版本比较高,导致 AC 无法识别,控制器 Web 页面给出 检测到无法识别的AP,请升级AP数据库! 的 ...

  2. Linux:LNMP环境的搭建

    LNMP环境的搭建 安装DNS服务器 安装DNS服务 yum install bind -y DNS的配置 创建正向解析 以创建一个名为"lsy.com"的正向查找区域为例: 第一 ...

  3. android binder 进程间通信机制1-binder 驱动程序

    以下内容只大概列个提纲,若要明白其中细节,还请看源码: 申明:本人菜鸟,希望得到大神指点一二,余心足已 binder 设备:/dev/binder binder 进程间通信涉及的四个角色: Clien ...

  4. Shadow Map(单方向)

    很早就想看阴影映射,一直拖到了现在,今天终于看了单方向的阴影映射,然后搭了个场景看了一下效果(每次搭场景感觉有点麻烦). 阴影映射的大体过程: // 1. 首选渲染深度贴图 glViewport(, ...

  5. LeetCode 200. 岛屿数量

    习题地址 https://leetcode-cn.com/problems/number-of-islands/ 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水 ...

  6. python执行cmd命令

    os.system os.system用来执行cmd指令,在cmd输出的内容会直接在控制台输出,返回结果为0表示执行成功 注意:os.system是简单粗暴的执行cmd指令,如果想获取在cmd输出的内 ...

  7. 如何在python中使用Elasticsearch

    什么是 Elasticsearch ​ 想查数据就免不了搜索,搜索就离不开搜索引擎,百度.谷歌都是一个非常庞大复杂的搜索引擎,他们几乎索引了互联网上开放的所有网页和数据.然而对于我们自己的业务数据来说 ...

  8. npm 命令 --save 和 --save-dev 的区别

    回顾 npm install 命令 我们在使用 npm install 安装模块的模块的时候 ,一般会使用下面这几种命令形式: 1 2 3 4 5 6 7 npm install moduleName ...

  9. ES5提取公共变量

    在ES5中,请求地址前缀等需要作为公共变量提出. 则需在common.js写上 Object.defineProperty(window,'base',{ value:"http://xx. ...

  10. RPA 可以给医疗行业带来哪些好处

    如今,医疗保健行业通过利用颠覆性科学技术,使护理服务更加高效.医疗保健行业已经转向数字化,很多大型医疗机构开始采用 RPA(机器人流程自动化),使医疗服务的竞争力不断攀升.使用 RPA 可以完美自动化 ...