百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

「Nginx」-一定要明白Nginx的七层代理与四层代理

off999 2025-01-29 17:26 25 浏览 0 评论

代理是在服务器和客户端之间的一层服务器,代理将客户端的请求转发给服务器,然后将服务端的响应转发给客户端。常用的代理技术分为正向代理、反向代理。Nginx虽然主要是来解决反向代理的,但也能支持正向代理。

  • 正向代理:代理服务器替代访问者去访问目标服务器。访问者知道目标服务器,目标服务器只知道代理服务器。需要访问者端进行代理配置。主要作用有“翻墙”、加速、缓存、访问授权、隐藏身份等。
  • 反向代理:访问者访问代理服务器,代理服务器根据请求判断并转发到目标服务器,并将获得的内容返回给客户端。访问者把代理服务器当作目标服务器,目标服务器能感知到真实访问者,当然代理服务器可以修改请求的部分信息。主要作用有保护和隐藏原始资源、负载均衡等。

四层与七层代理

Nginx原来是在七层做代理的,新的版本是支持四层代理的。这里的层是OSI 7层网络模型,OSI 模型是从上往下的,越底层越接近硬件,越往上越接近软件,所以四层代理要比七层代理性能高很多,但是七层可以进行更多的业务控制。

  • 四层代理:工作在TCP层,处理tcp / udp,基于IP+端口的转发,nginx修改请求进来的数据包里面的目标和源IP和端口,然后把数据包发向目标服务器,服务器返回数据,由Nginx再返回给请求客户端。此模式只做包转发,无复杂逻辑,性能非常快。
  • 七层代理:工作在应用层,处理http/https,基于URL等应用层信息的转发,根据具体内容(url,参数,cookie,请求头)然后转发到相应的服务器,收到服务器的响应数据后再转发给请求客户端。此模式可以实现http信息的改写、头信息的改写、安全应用规则控制、URL匹配规则控制、以及转发、rewrite等等的规则。

正向代理配置项

Nginx正向代理配置较少,主要在server中配置resolver来指定指定DNS服务器IP地址。resolver是必需的,解析接收到的域名,要支持https是需要安装ngx_http_proxy_connect_module模块。

...
server {  
    resolver 192.168.1.1; #指定DNS服务器IP地址  
    listen 8080;  
    location / {  
        proxy_pass http://$http_host$request_uri; #设定代理服务器的协议和地址  
    }  
}  
...

反向代理配置-七层

Nginx的七层代理是其最常用的重要功能,也同时衍生出很多与此相关的 Nginx 服务器重要功能。主要配置项有location块的URL匹配、资源位置、代理跳转等。Nginx转发模块是ngx_http_proxy_module,默认安装的可直接使用。

http      #http块
{
    upstream us_name       #upstream块
    { 
        server ...       #被代理服务器地址,以及参数
    }
    server        #server块
    {
        location [PATTERN]    #location块
        {
            ...
            proxy_pass us_name;
        }
    }
}

反向代理配置-四层

四层的代理(stream)由模块ngx_stream_core_module支持,默认没有编译到nginx, 编译nginx时候带上 --with-stream。在配置上stream模块用法和http模块差不多,最大区别是在server块配置中没有了对URL的各种规则转发。也支持tcp长连接保持、SSL等。

stream      #stream块
{
    upstream us_name       #upstream块
    { 
        server ...       #被代理服务器地址,以及参数
    }
    server        #server块
    {
        listen address:port protocol;       #可选ip/主机名与协议
        proxy_pass us_name;
    }
}

负载均衡的调度算法

Nginx的upstream目前主流支持的6种方式的分配,分别是内置策略:轮询策略,权重轮询策略,ip_hash策略,最少连接数;和第三方策略:fair策略,url_hash策略,sticky策略等。

  • 轮询:这是Nginx的默认方式,每个请求会按时间顺序逐一分配到不同的后端服务器。两个参数fail_timeout 与max_fails结合使用,周期内最大失败次数即故障不再访问,故障恢复后下一个周期后继续提供服务。还有参数backup标记备用,down标记停机。
  • 加权轮询:权重方式,在轮询策略的基础上指定轮询的几率。数字超大几率越高。
  • IP_HASH:基于客户端IP的分配方式,相同的IP会访问同一个服务器。最简解决集群的会话(Session)一致问题的方案。
  • 最少连接数:最少的活跃连接数的服务器优先分配。
  • fair:响应时间短的优先分配。需要安装nginx-upstream-fair模块。
  • URL_HASH:按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。需要nginx_upstream_hash模块,新版默认已经安装。
  • sticky:为一个客户端只和一台服务器保持长连接。基于cookie实现,需要安装nginx-sticky-module模块。

相关推荐

deepin和统信uos(统信和deepin的区别)

差不多。1Deepin原名LinuxDeepin、deepinos、深度操作系统,于2014年4月改名Deepin。deepin团队基于Qt/C++(用于前端)和Go(用于后端)开发了的全新深度桌...

三星驱动(三星驱动板)

驱动是必须装的,但不需要单独安装驱动。  1、电脑的所有硬件,必然要装驱动,键盘、鼠标什么的,都是有驱动的。驱动是软件和硬件结合的桥梁。但多数普通常见的硬件,驱动是widnows系统自带的,不需要用户...

u盘启动杀毒软件(u盘杀毒系统)

  有,但是主要是专杀工具,全面的综合杀毒软件基本上没有,因为没什么用。  1、放在U盘里的杀毒软件,就是不安装,也不监控,只杀毒的软件。  2、目前的杀毒软件的工作机制,主要是监控,监控电脑不感染病...

联想维修站点查询官网(联想 维修 服务网点)

您可以在联想的官方网站上查询到附近的授权维修服务点,或者拨打联想的客服电话寻求帮助。在维修服务点,您可以享受到专业的维修服务,包括硬件故障、软件问题、系统优化等方面的维护和维修。维修人员将会根据您的电...

怎么登录hotmail邮箱(邮箱登陆hotmail)
  • 怎么登录hotmail邮箱(邮箱登陆hotmail)
  • 怎么登录hotmail邮箱(邮箱登陆hotmail)
  • 怎么登录hotmail邮箱(邮箱登陆hotmail)
  • 怎么登录hotmail邮箱(邮箱登陆hotmail)
电脑不识别移动硬盘(移动硬盘灯亮但不读取)

电脑不能识别移动硬盘可能是由于以下原因造成的:1.电脑和硬盘之间的连接首先,可以确保移动硬盘正确连接到电脑上,检查USB接口是否松动或损坏,可以尝试更换USB线或者尝试连接到其他USB接口看是否能够...

键盘的win键在哪里(电脑键盘的win键在哪里)

win键就是电脑键盘上显示WINDOWS标志的按键。位于CTRL键与ALT键两个键之间,win键的具体位置一般电脑键盘上有左右两个。Windows键是一种特殊的键,通常位于键盘的左下角。它的图案是一个...

新手学做ppt(新手学做ppt的软件有哪些)
  • 新手学做ppt(新手学做ppt的软件有哪些)
  • 新手学做ppt(新手学做ppt的软件有哪些)
  • 新手学做ppt(新手学做ppt的软件有哪些)
  • 新手学做ppt(新手学做ppt的软件有哪些)
ghost全盘备份步骤图(用ghost怎么进行全盘备份)

可以用手动备份到指定分区。一、用一键Ghost还原中的“中文向导”备份开始-程序-一键Ghost-选出“中文向导”,Ghost中文向导-1、备份文件默认是“第1硬盘第1分区”,如果不是,将鼠标指针移...

键盘的windows键是哪一个(键盘上windows键是哪个键)
键盘的windows键是哪一个(键盘上windows键是哪个键)

windows键就是电脑键盘上ctrl键和alt键之间的按键,位于左下角。它带着微软的徽标,跟开始菜单一样的图标,它属于辅助按键,主要与其它按键组合使用,实现一些特定的功能,组合成多种快捷操作方式。这里上面所知的Win键其实就是键盘上的Wi...

2025-12-31 10:51 off999

win10打开设置快捷键(win10打开设置快捷键是什么)

1、首先打开电脑,在任务栏的语言地方点击一下再点击语言首选项。2、然后在新的界面里点击选择左侧“高级设置”按钮。3、之后在新的界面里点击选择“更改语言栏热键”按钮。4、然后在新的界面里点击选择“更改热...

flash插件下载手机版下载安装

华为手机的最新系统版本已经不再支持FlashPlayer,这是由于Adobe已于2020年底停止更新和支持FlashPlayer。因此,如果您使用最新的华为手机系统,可能无法安装和使用Flash...

官方应用商店下载(小米官方应用商店下载)

1.审核和验证:应用商店会对应用进行审核和验证,确保其质量和可靠性。开发者需要满足一定的要求才能在应用商店上架应用。而官网下载的应用没有经过此类审核和验证,因此用户需要自行评估其质量和可信度。2....

主题软件免费(主题软件免费推荐)

下载主题方法:一、打开手机找到APPStore应用软件,二、点击进去在下面找到有个搜索,点击它查找主题壁纸,三、弹出来很多主题壁纸,根据下载量和个人喜欢的应用主题选择下载相应的主题,四、下载成功后即...

一芯fc1178bc盘量产教程(一芯量产工具使用教程)

fc1178bc量产工具没有显示u盘拔下U盘,关闭量产工具,再插上U盘(先要确认卸载了安国的驱动,如果不能确认,运行LoadDriver.exe卸载),然后插上U盘,右键我的电脑---属性---硬件-...

取消回复欢迎 发表评论: