• Nginx学习笔记负载均衡和反向代理


    1.代理与反向代理
    代理服务器:
    代理内部网络Internet的连接请求。
    不支持外部对内部网络的访问请求。
    反向代理服务器:
    代理外部网络上的主机访问内部网络
     
    2.常见WEB负载均衡方法
    (1)用户手动选择
    常见于各个资源下载网站,用户自己手动选择从哪个服务器下载。
    (2)DNS轮询方式
    对同一主机名,添加多条A记录,让其DNS轮询多个IP
    可以通过Linux的dig命令查看域名解析情况:
    dig xxx.baidu.com
    DNS轮询的缺点:
    A.可靠性低
    B.负载分配不均衡
    因此DNS轮询适用于可靠性要求不高的负载均衡,比如图片服务器集群、纯静态网页服务器集群等。
    (3)四/七层负载均衡设备
    通常作用与OSI的第四层或第七层
    OSI:开放系统互连模型(Open System Interconnection)
     
    具体7层 数据格式 功能与连接方式 典型设备
    应用层 Application 网络服务与使用者应用程序间的一个接口 网关
    表示层 Presentation 数据表示、数据安全、数据压缩
    会话层 Session 建立、管理和终止会话
    传输层 Transport 数据组织成数据段Segment 用一个寻址机制来标识一个特定的应用程序(端口号) 防火墙
    网络层 Network 分割和重新组合数据包Packet 基于网络层地址(IP地址)进行不同网络系统间的路径选择 路由器
    数据链路层 Data Link 将比特信息封装成数据帧Frame 在物理层上建立、撤销、标识逻辑链接和链路复用 以及差错校验等功能。通过使用接收系统的硬件地址或物理地址来寻址 网桥、交换机、网卡
    物理层Physical 传输比特(bit)流 建立、维护和取消物理连接 光纤、同轴电缆、 
    双绞线、中继器和集线器
     
     
    3.多线多地区智能DNS解析与混合负载均衡方式
     
     
    4.Nginx反向代理配置
    使用反向代理之后,后端WEB服务器(以PHP为例),就不能直接通过$_SERVER['REMOTE_ADDR']变量来获取用户的真实IP了,这时获取的将是Nginx负载均衡服务器的IP。此时需要在Nginx反向代理时添加Header头信息X-Forwarded-For,让后端服务器能通过$_SERVER['HTTP-X-FORWORDED-FOR']获取用户真实IP。参考平时我们常用的获取用户IP的函数。
     
     
    5.动静态网页分离
     
     

    Citrix NetScaler 4-7层负载均衡器(基于TCP)

    Nginx负载均衡架构

     
     
    6.关键的Upstream模块
    Upstream:Nginx负载均衡的主要模块,位于http之内,默认的负载均衡方式为轮询。
    ip_hash:负载均衡时,将某个客户端IP的请求,通过哈希算法,定位到同一台后端服务器上,以解决session不共享的问题。
    如果能做到session共享,还是不要用这个配置,因为其可能造成负载不均衡。
    摘除负载均衡服务器,需要设置其down,而不是删除记录,删除记录可能造成session失效(原来的back1hash到back2上去了)
    upstream backend{
         ip_hash;
         server back1.10jqka.com.cn;
         server back2.10jqka.com.cn;
         server back3.10jqka.com.cn down;
    }
     
    server
    语法:
    server name [parameters]
    默认none
    name可以是域名、IP、端口号、UNIX Socket
    parameters可以是
     
     
    7.负载均衡服务器的双机高可用
    两种实现方式:
    (1)一台主服务器加一台热备服务器
    (2)两台负载均衡服务器
  • 相关阅读:
    数据库多表查询,左连接(入门)
    让弹出层始终显示在屏幕正中间
    jq中的ajax合集总结
    ajax之$.getScript()
    Jquery遮罩ShowLoading组件
    jquery中prop()方法和attr()方法的区别
    Bootstrap 响应式实用工具
    VS使用技巧
    ubuntu下postgreSQL安装配置
    基础设施即代码(Infrastructure as Code)
  • 原文地址:https://www.cnblogs.com/zhouchangju/p/2853968.html
Copyright © 2020-2023  润新知