IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> nginx反向代理流程以及具体执行过程 -> 正文阅读

[系统运维]nginx反向代理流程以及具体执行过程


一、nginx反向代理流程

反向代理:使用代理服务器来接受internet上的连接请求,然后将请求转发给内部网络中的上游服务器,并将上游服务器得到的结果返回给请求连接的客户端,代理服务器对外表现就是一个web服务器。Nginx就经常拿来做HTTP反向代理服务器。
Nginx具有强悍的高并发高负载能力,所以一般会作为前端服务器直接向客户端提供静态文件服务。但是一些复杂、多变的业务不适合放Nginx上,一般会使用Apache、Tomcat等服务器来处理。因此,Nginx一般会作为静态web服务器与反向代理服务器,将不适合自己处理的请求转发给上游服务器处理。
在这里插入图片描述
Nginx代理服务器处理过程:
1.接受HTTP请求,将用户的请求(包括HTTP包体)完整的接受到Nginx服务器的磁盘或者内存中。
2.向上游服务器发起连接
3.将缓存的客户端请求转发到上游服务器

Nginx的这种转发方式与Squid等代理服务器的处理方式不同,Squid是一边接收客户端请求,一边将请求转发到上游服务器。相比之下 ,Nginx延长了一个请求处理的时间,并且增加了用于缓存请求内容的内存和磁盘空间。 但是Nginx有效的降低了上游服务器的负载,将压力放在了Nginx服务器上。

那么Nginx的这种机制是如何降低上游服务器的负载的呢?通常情况下,客户端与Nginx代理服务器走公网,代理服务器与上游服务器之间走内网。如果一边接受客户端请求,一般将请求转发到上游服务器的话,上游服务器需要长时间的保存这个连接,增加上游服务器的并发压力。但是如果是接受到完整请求之后,再转发给上游服务器的话,内网的速度更快,不需要那么长的时间保持连接,可以减低上游服务器的并发压力。

二、nginx反向代理具体执行过程

以访问:http://nginx.test.com为例:

1、当HTTP请求交给Nginx处理时,首先Nginx会取出header头中的Host (此处也就是 nginx.test.com),然后将其与所有的配置文件中的每个server段中的server_name进行匹配,以此决定到底有哪个server块来处理这个请求。(当然有时也可能一个Host与多个server块中的server_name都匹配,这时会根据匹配的优先级选择实际处理的server块)
2、此时我们可以看到HTTP请求匹配到了server_name nginx.test.com;,这样接下来nginx就会在当前server块中匹配到 location / 。

3、接下来继续由nginx处理可以看到 location / { proxy_pass http://hellonginx; } ; 这就是进行反向代理处理,这个例子中使用的是nginx的upstream模块进行反向代理实现。

4、通过proxy_pass http://hellonginx; 中的 hellonginx 可以找到对应的upstream块,然后,可以根据其中的 server 127.0.0.1:8080 ;再次进行代理请求到目标服务器。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 21:17:28  更:2022-10-08 21:19:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:26:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码