当前所在位置: 首页 > 百度域名

Nginx反向代理、动静分离和负载均衡你知道正向代理和反向代理有什么区别吗?

2021-10-11 本站作者 【 字体:

Nginx作为时下最流行的HTTP服务器之一,同时它是一个反向代理服务器,提到反向代理服务器,有同学可能觉得这个概念很模糊,如果说到代理,他可能明白,但是再引出一个正向代理,估计懵了,笔者将尝试用浅显易懂的比方把这两个概念解释清楚。

反向代理

反向代理可以理解为客服端和服务端沟通经过一个代理,代理来分发请求

nginx is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server

Nginx通常被用作后端服务器的反向代理,这样就可以很方便的实现动静分离,以及负载均衡,从而大大提高服务器的处理能力。

正向代理

A同学在大众创业、万众创新的大时代背景下开启他的创业之路,目前他遇到的最大的一个问题就是启动资金,于是他决定去找马云爸爸借钱,可想而知,最后碰一鼻子灰回来了,情急之下,他想到一个办法,找关系开后门,经过一番消息打探,原来A同学的大学老师王老师是马云的同学,于是A同学找到王老师,托王老师帮忙去马云那借500万过来,当然最后事成了。不过马云并不知道这钱是A同学借的,马云是借给王老师的,最后由王老师转交给A同学。这里的王老师在这个过程中扮演了一个非常关键的角色,就是代理,也可以说是正向代理,王老师代替A同学办这件事,这个过程中,真正借钱的人是谁,马云是不知道的,这点非常关键。

我们常说的代理也就是只正向代理,正向代理的过程,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求,知名的科学上网工具shadowsocks 扮演的就是典型的正向代理角色。在天朝用浏览器访问 www.google.com 时,被残忍的拒绝了,于是你可以在国外搭建一台代理服务器,让代理帮我去请求google.com,代理把请求返回的相应结构再返回给我。

常用配置

Nginx反向代理、动静分离和负载均衡

Nginx反向代理、动静分离和负载均衡

第二种配置方式用了upstream,可以为之后负载均衡做准备

你知道正向代理和反向代理有什么区别吗?反向代理

大家都有过这样的经历,拨打10086客服电话,可能一个地区的10086客服有几个或者几十个,你永远都不需要关心在电话那头的是哪一个,叫什么,男的,还是女的,漂亮的还是帅气的,你都不关心,你关心的是你的问题能不能得到专业的解答,你只需要拨通了10086的总机号码,电话那头总会有人会回答你,只是有时慢有时快而已。那么这里的10086总机号码就是我们说的反向代理。客户不知道真正提供服务人的是谁。

动静分离

动静分离,动态内容如php,jsp的页面必须由服务端动态处理,就转发到tomcat之类的容器,静态内容如图片,html就直接访问文件

反向代理隐藏了真实的服务端,当我们请求 www.baidu.com 的时候,就像拨打10086一样,背后可能有成千上万台服务器为我们服务,但具体是哪一台,你不知道,也不需要知道,你只需要知道反向代理服务器是谁就好了,www.baidu.com 就是我们的反向代理服务器,反向代理服务器会帮我们把请求转发到真实的服务器那里去。Nginx就是性能非常好的反向代理服务器,用来做负载均衡。

你知道正向代理和反向代理有什么区别吗?

两者的区别在于代理的对象不一样:正向代理代理的对象是客户端,反向代理代理的对象是服务端

Nginx实现动静分离,其实就是在反向队里的时候,如果是静态资源,那么就直接从Nginx发布的路径去读取,而不需要从后台服务器后去了

注意:这种情况下需要保证后端跟前端的程序保持一致,可以Rsync做服务端自动同步或者使用NFS、MFS分布式共享存储

如:

Nginx反向代理、动静分离和负载均衡

匹配jpg|jpeg|gif|png|swf|ico后缀的文件就直接在root的路径找

负载均衡

Nginx通过upstream模块来实现简单的负载均衡

常用指令

ip_hash

语法:ip_hash

默认值:none

使用字段:upstream

这个指令将基于客户端连接的IP地址来分发请求。

哈希的关键字是客户端的C类网络地址,这个功能将保证这个客户端请求总是被转发到一台服务器上,但是如果这台服务器不可用,那么请求将转发到另外的服务器上,这将保证某个客户端有很大概率总是连接到一台服务器。

无法将权重(weight)与ip_hash联合使用来分发连接。如果有某台服务器不可用,你必须标记其为“down”,如下例:

Nginx反向代理、动静分离和负载均衡

注意:即使是由同一台机子发出的请求也不一定访问到同一个服务器,可能这台机子也使用了代理,使ip发生变化,或者访问的服务器down掉了

server

语法:server name [parameters]

默认值:none

使用字段:upstream

指定后端服务器的名称和一些参数,可以使用域名,IP,端口,或者unix socket。如果指定为域名,则首先将其解析为IP。

weight = NUMBER - 设置服务器权重,默认为1。

max_fails = NUMBER - 在一定时间内(这个时间在fail_timeout参数中设置)检查这个服务器是否可用时产生的最多失败请求数,默认为1,将其设置为0可以关闭检查,这些错误在proxy_next_upstream或fastcgi_next_upstream(404错误不会使max_fails增加)中定义。

fail_timeout = TIME - 在这个时间内产生了max_fails所设置大小的失败尝试连接请求后这个服务器可能不可用,同样它指定了服务器不可用的时间(在下一次尝试连接请求发起之前),默认为10秒,fail_timeout与前端响应时间没有直接关系,不过可以使用proxy_connect_timeout和proxy_read_timeout来控制。

down - 标记服务器处于离线状态,通常和ip_hash一起使用。

backup - (0.6.7或更高)如果所有的非备份服务器都宕机或繁忙,则使用本服务器(无法和ip_hash指令搭配使用)。

示例配置

Nginx反向代理、动静分离和负载均衡

注意:如果你只使用一台上游服务器,nginx将设置一个内置变量为1,即max_fails和fail_timeout参数不会被处理。

结果:如果nginx不能连接到上游,请求将丢失。

解决:使用多台上游服务器。

upstream

语法:upstream name { … }

默认值:none

使用字段:http

这个字段设置一群服务器,可以将这个字段放在proxy_pass和fastcgi_pass指令中作为一个单独的实体,它们可以可以是监听不同端口的服务器,并且也可以是同时监听TCP和Unix socket的服务器。

服务器可以指定不同的权重,默认为1。

示例配置

Nginx反向代理、动静分离和负载均衡

请求将按照轮询的方式分发到后端服务器,但同时也会考虑权重。

在上面的例子中如果每次发生7个请求,5个请求将被发送到backend1.example.com,其他两台将分别得到一个请求,如果有一台服务器不可用,那么请求将被转发到下一台服务器,直到所有的服务器检查都通过。如果所有的服务器都无法通过检查,那么将返回给客户端最后一台工作的服务器产生的结果。

Geo和GeoIP模块

这两个模块主要用于做全局的负载均衡,可以根据不同的客户端来访问不同的服务器,示例如下

Nginx反向代理、动静分离和负载均衡
阅读全文
id_1广告位-300*300
相关推荐

写出域名解析的过程和具体步骤申请域名的流程?

写出域名解析的过程和具体步骤申请域名的流程?
域名分为国际域名和国内域名。国内域名需要实名制审核,具体流程如下:1、国际域名:...

这些免费DNS域名解析服务你们知道吗?稳定、可靠从DoH到ODoH,运营商再也不能搞DNS劫持了

这些免费DNS域名解析服务你们知道吗?稳定、可靠从DoH到ODoH,运营商再也不能搞DNS劫持了
DNS,即Domain Name System,中文为域名解析系统,平时我们可能...

域名解析中的cname和url转发有什么区别二级域名和URL转发的区别

域名解析中的cname和url转发有什么区别二级域名和URL转发的区别
a (address) 记录是用来指定主机名(或域名)对应的ip地址记录。用户可...

让我来帮你轻松搞定那些又臭又长的网页地址短网址系统(又名短链接系统)

让我来帮你轻松搞定那些又臭又长的网页地址短网址系统(又名短链接系统)
上网的时候我们总要与各种各样形式的网页链接打交道。那些很难记住的链接,特别是非常...

短链接/短网址缩短服务通常运用在哪些场景?又有什么样的作用?利用AdFly网址缩短服务跳转率分享赚美元方法分析操作

短链接/短网址缩短服务通常运用在哪些场景?又有什么样的作用?利用AdFly网址缩短服务跳转率分享赚美元方法分析操作
短链接特点简短、易记、易推广同时可以统计跟踪用户分析,让你的推广变得简单有效。在...

尼康以6800美金高价购买“尼康.世界”中文域名(转载)浅解姓氏域名的重要性,中小企业必看!

尼康以6800美金高价购买“尼康.世界”中文域名(转载)浅解姓氏域名的重要性,中小企业必看!
Sedo上周出售域名价值100万美元,其中包括了一些值得注意的新顶级域名。  新...

怎么缩短一个网址的链接?如何把这个网址简缩一下!不要二级域名的!急需!!!

怎么缩短一个网址的链接?如何把这个网址简缩一下!不要二级域名的!急需!!!
http://store.taobao.com淘宝首页http://store....

com.cn / .cn / .net的同名域名哪个主推比较好?快捷指令高级用法?

com.cn / .cn / .net的同名域名哪个主推比较好?快捷指令高级用法?
网站原本的网址是ip地址,例如www.wikipedia.org是一个域名,他的...

如何使用ScrapeBox查找过期域名几种域名whois查询的方法及平台介绍

如何使用ScrapeBox查找过期域名几种域名whois查询的方法及平台介绍
过期域名是SEO 项目中的一个宝贵资源,很多在做SEO项目的人都在挖掘它。域名注...

域名要过期多久之后才开放注册[网络天地]方便快捷查询网站域名Alexa和whios信息的捷径

域名要过期多久之后才开放注册[网络天地]方便快捷查询网站域名Alexa和whios信息的捷径
 所有的域名都会有一定的注册时间,最长的一半是10年,最短也要1年起注册。所以只...