首页 > 系统相关 >8、nginx反向代理优缺点分析

8、nginx反向代理优缺点分析

时间:2024-01-10 12:11:07浏览次数:24  
标签:上游 请求 Nginx 优缺点 代理服务器 nginx 反向 服务器 客户端

1.概述

  • 反向代理(reverse proxy)方式是指用代理服务器来接受Internet 上的连接请求,然后将请求转发给内部网络中的上游服务器,并将从上游服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外的表现就是一个 Web 服务器。

  • 充当反向代理服务器是Nginx 的一种常见用法(反向代理服务器必须能够处理大量并发请求),由于Nginx具有“强悍”的高并发高负载能力,因此一般会作为前端的服务器直接向客户端提供静态文件服务。但也有一些复杂、多变的业务不适合放到 Nginx 服务器上,这时会用Apache、Tomcat等服务器来处理。于是,Nginx 通常会被配置为既是静态 Web 服务器也是反向代理服务器,不适合 Nginx 处理的请求就会直接转发到上游服务器中处理。

    nginx反向代理

2.Nginx反向代理流程优缺点

Nginx反向代理整体流程

  • 当客户端发来 HTTP 请求时,Nginx 并不会立刻转发到上游服务器,而是先把用户的请求(包括 HTTP 包体)完整地接收到 Nginx 所在服务器的硬盘或者内存中,然后再向上游服务器发起连接,把缓存的客户端请求转发到上游服务器。
  • Nginx 的这种工作方式有什么优缺点呢?
    • 缺点是延长了一个请求的处理时间并增加了用于缓存请求内容的内存和磁盘空间。
    • 优点则是降低了上游服务器的负载,尽量把压力放在Nginx服务器上。
  • Nginx 的这种工作方式为什么会降低上游服务器的负载呢?
    • 客户端与代理服务器之间的网络环境会比较复杂,多半是"走"公网,网速平均下来可能较慢,因此,一个请求可能要持续很久才能完成。
    • 代理服务器与上游服务器之间一般是"走"内网,或者有专线连接,传输速度较快。一般反向代理服务器在与客户端建立连接且还没有开始接收 HTTP包体时,就已经向上游服务器建立了连接。例如,某个请求要上传一个 1GB 的文件,那么每次Squid 在收到一个TCP 分包(如2KB)时,就会即时地向上游服务器转发。在接收客户端完整 HTTP 包体的漫长过程中,上游服务器始终要维持这个连接,这直接对上游服务器的并发处理能力提出了挑战。
    • Nginx在接收到完整的客户端请求(如1GB 的文后,才会与上游服务器建立连接转发请求,由于是内网,所以这个转发过程会执行得很快。这样,一个客户端请求占用上游服务器的连接时间就会非常短,也就是说,Nginx 的这种反向代理方案主要是为了降低上游服务器的并发压力。

标签:上游,请求,Nginx,优缺点,代理服务器,nginx,反向,服务器,客户端
From: https://www.cnblogs.com/ccblblog/p/17956220

相关文章

  • 实战-Docker 安装 Nginx
    使用Docker命令安装镜像官方文档:https://hub.docker.com/_/nginxmkdir-p/root/apps/nginxmkdir-p/opt/nginx/confdockerrun-d\--namenginx\-p80:80\-p443:443\-v/root/apps/nginx:/usr/share/nginx/html\-v/opt/nginx/conf:/etc/nginx/......
  • 部署nginx proxy manager (可视化nginx反向代理)
    官方网站https://nginxproxymanager.com/步骤所有步骤按照官方配置来即可,我们直接getstarted使用dockercompose方式安装我们创建一个文件夹,直接进去新建doker-compose.yml配置文件,然后写入以下内容,我的端口被占用了,修改了内部端口启动dockercomposeup-d然后一定......
  • windows 部署flask+tornado+nginx
    nginx下载地址http://nginx.org/en/download.html1,因windows对uwsgi支持不友好,flask自有服务不够强大,所以引用tornado服务fromtornado.wsgiimportWSGIContainerfromtornado.httpserverimportHTTPServerfromtornado.ioloopimportIOLoopfromrunimportappimport......
  • 17. 从零用Rust编写正反向代理, Rust中一些功能的实现
    wmproxywmproxy是由Rust编写,已实现http/https代理,socks5代理,反向代理,静态文件服务器,内网穿透,配置热更新等,后续将实现websocket代理等,同时会将实现过程分享出来,感兴趣的可以一起造个轮子法项目地址gite:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmpr......
  • 16. 从零用Rust编写正反向代理, 反向代理upstream源码实现
    wmproxywmproxy是由Rust编写,已实现http/https代理,socks5代理,反向代理,静态文件服务器,内网穿透,配置热更新等,后续将实现websocket代理等,同时会将实现过程分享出来,感兴趣的可以一起造个轮子法项目wmproxygite:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/......
  • nginx将xxx.com重定向到www.xxx.com配置
    有时候,我们网站,需要将顶级域名xxx.com统一跳转到二级域名www.xxx.com下。这时候,我们可以通过修改nginx配置达到我们的目的。参考配置#以下属性中,以ssl开头的属性表示与证书配置有关。server{listen443ssl;#配置HTTPS的默认访问端口为443。#如果未在此处配置HTTP......
  • 【Nginx】在线安装与离线安装
    目录1、下载nginxnews1.2、安装包2、 在线安装第一步,安装pcre第二步,安装openssl、zlib、 gcc依赖第三步,安装nginx第四步,关闭防火墙,访问nginx编辑3、离线安装第一步安装pcre第二步安装openssl第三步安装zlib第四步安装nginx1、下载nginxnews1.2、安装包pcre-8.37.tar......
  • nginx根据时间段打开或者关闭某配置项
    先看问题boss提了一个怪异的需求:每天上班时间8.30-18点可以访问某些url,其他时间段403。如何解决可以使用nginx的ngx_http_map_module模块结合ngx_http_access_module模块来实现具体操作步骤如1.在nginx中定义map,用来映射时间段,开关状态,url信息#nginx$time_local是一个nginx配置文......
  • linux下使用heartbeat做HA集群,把nginx作为HA对应的服务
    通过安装该Linux-HA软件,可以实现Linux双机系统的高可用性解决方案,实现双机系统的热备份,并能够做到双机之间的无缝切换,从而对外提供稳定可靠的服务,最终实现系统高性能RAS(reliability,availability,andserviceability)。这里使用heartbeat来做HA集群,并且把nginx服务作为HA对应的服......
  • 常用Python自动化测试框架有哪些?优缺点对比
    随着技术的进步和自动化技术的出现,市面上出现了一些自动化测试框架。只需要进行一些适用性和效率参数的调整,这些自动化测试框架就能够开箱即用,大大节省了测试时间。而且由于这些框架被广泛使用,他们具有很好的健壮性,并且具有广泛多样的用例集和技术来轻易发现微小的缺陷。以前,测......