一、代理服务器

服务   功能 配置语法 默认 配置位置 配置举例  结果验证 备注
代理服务 反向代理 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. Data Management Technology(5) -- Recovery

    Recovery Types of Failures Wrong data entry Prevent by having constraints in the database Fix with d ...

  2. Centos7配置桥接网络

  3. 201871010116-祁英红《面向对象程序设计(java)》第七周学习总结

    项目 内容 <面向对象程序设计(java)> https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/ ...

  4. Idea的Http测试支持(十二)

    1. 在Tools > HTTP Client > Test RESTful Web Service 打开窗口 窗口信息如下: 2. 在Host里面填写接口请求的服务器ip地址和端口,pa ...

  5. C# 二维数组 转换成 DataTable

    C# 数据转换 Overview C# 窗体操作中,有些比较特别的操作.但是为了方便我们不得不使用一些比较特别的手段. C#中二维数组转DataTable 首先,我们看一下我对二维数组的数据处理.这次 ...

  6. [Vue专题] 对比vue-cli2.x和vue-cli3.x的搭建

    简介:深入了解脚手架vue-cli2.x版本与3.x版本构建项目的区别 搭建前提条件: node环境 node是傻瓜式安装的,直接去官网下载安装不断下一步 命令行输入node -v查询版本号,有版本号 ...

  7. Paper | LISTEN, ATTEND AND SPELL: A NEURAL NETWORK FOR LARGE VOCABULARY CONVERSATIONAL SPEECH RECOGNITION

    目录 1. 相关工作 2. 方法细节 2.1 收听器 2.2 注意力和拼写 本文提出了一个基于神经网络的语音识别系统List, Attend and Spell(LAS),能够将语音直接转录为文字. ...

  8. 基于TCP协议的socket套接字编程

    目录 一.什么是Scoket 二.套接字发展史及分类 2.1 基于文件类型的套接字家族 2.2 基于网络类型的套接字家族 三.套接字工作流程 3.1 服务端套接字函数 3.2 客户端套接字函数 3.3 ...

  9. ViewTool Hollong BLE Sniffer Support Linux OS Introduction

    ViewTool Hollong BLE Sniffer Support Linux OS Introduction 1. Download Software:http://www.viewtool. ...

  10. 用 Python 批量下载百度图片

    ​ 为了做一个图像分类的小项目,需要制作自己的数据集.要想制作数据集,就得从网上下载大量的图片,再统一处理. 这时,一张张的保存下载,就显得很繁琐.那么,有没有一种方法可以把搜索到的图片直接下载到本地 ...