热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

1.代理与反向代理代理服务器:代理内部网络对Internet的连接请求。不支持外部对内部网络的访问请求。反向代理服务器:
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)两台负载均衡服务器

推荐阅读
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • 深入解析OSI七层架构与TCP/IP协议体系
    本文详细探讨了OSI七层模型(Open System Interconnection,开放系统互连)及其与TCP/IP协议体系的关系。OSI模型将网络通信过程划分为七个层次,每个层次负责不同的功能,从物理层到应用层逐步实现数据传输和处理。通过对比分析,本文揭示了OSI模型与TCP/IP协议在结构和功能上的异同,为理解现代网络通信提供了全面的视角。 ... [详细]
  • 本文探讨了基于端口的ACL访问控制列表与NAT网络地址转换功能的整合优化。基本ACL主要针对源IP地址进行匹配,而高级ACL则能同时匹配源IP、目标IP、源端口及目标端口等多层字段,提供更精细的流量管理。此外,NAT技术的核心优势在于实现宽带共享,通过将内部私有IP地址转换为外部公共IP地址,有效解决了IP地址资源紧张的问题,并增强了网络安全。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 该大学网站采用PHP和MySQL技术,在校内可免费访问某些外部收费资料数据库。为了方便学生校外访问,建议通过学校账号登录实现免费访问。具体方案可包括利用学校服务器作为代理,结合身份验证机制,确保合法用户在校外也能享受免费资源。 ... [详细]
  • PHP自学必备:从零开始的准备工作与工具选择 ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • Python 实战:异步爬虫(协程技术)与分布式爬虫(多进程应用)深入解析
    本文将深入探讨 Python 异步爬虫和分布式爬虫的技术细节,重点介绍协程技术和多进程应用在爬虫开发中的实际应用。通过对比多进程和协程的工作原理,帮助读者理解两者在性能和资源利用上的差异,从而在实际项目中做出更合适的选择。文章还将结合具体案例,展示如何高效地实现异步和分布式爬虫,以提升数据抓取的效率和稳定性。 ... [详细]
  • Linux入门教程第七课:基础命令与操作详解
    在本课程中,我们将深入探讨 Linux 系统中的基础命令与操作,重点讲解网络配置的相关知识。首先,我们会介绍 IP 地址的概念及其在网络协议中的作用,特别是 IPv4(Internet Protocol Version 4)的具体应用和配置方法。通过实际操作和示例,帮助初学者更好地理解和掌握这些基本技能。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 负载均衡基础概念与技术解析
    随着互联网应用的不断扩展,用户流量激增,业务复杂度显著提升,单一服务器已难以应对日益增长的负载需求。负载均衡技术应运而生,通过将请求合理分配到多个服务器,有效提高系统的可用性和响应速度。本文将深入探讨负载均衡的基本概念和技术原理,分析其在现代互联网架构中的重要性及应用场景。 ... [详细]
author-avatar
bl乄ue光耀
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有