Nginx 的原理解析

发布于 2023-09-12 12:04:46 字数 2302 浏览 26 评论 0

代理

  • 反向代理
    • 代理服务器接受来自客户端的请求,然后将请求转发到内部网络的服务器,将服务器得到的结果返回给客户端
    • 使用 tomcat 访问一个 http://www.test.com/readme ,如果服务器中不存在 readme ,将会返回 Not Found 。但是利用反向代理可以完成从其他服务器上调用
  • 正向代理
    • 代理 VPN 即可,起一个跳板作用

工作流程

  • 用户访问反向代理服务器
  • 反向代理服务器接受用户的请求
  • 反向代理服务器在本地缓存中查找请求的内容
  • 如果不在缓存中,则会代替用户向原服务器请求相同的信息内容
  • 工作的流程图如下所示:

模块

  • 核心模块
    • 建立 nginx 服务模型、管理网络层和应用层协议、以及启动针对特定应用的一系列候选模块
    • nginx 发送文件或者转发请求到其他服务器,由处理模块代理类模块提供服务
    • 当需要 nginx 把输出压缩或者在服务端增加一些东西,由过滤模块提供服务
  • 处理器模块
    • 直接处理请求,并进行输出内容和修改 headers 信息等操作
  • 过滤器模块
    • 类似于 rpc 框架中进行过滤的模块,其他处理器模块输出的内容进行修改操作,最后由 nginx 输出。
  • 代理类模块
    • 这些模块主要与后端一些服务比如 FastCGI 等进行交互,实现服务代理和负载均衡等功能

对于请求的处理

  • 运行模式:多进程 + 异步非阻塞 IO 事件
    • master 通过 nginx.conf 文件进行配置、 worker 进行连接和请求的处理

热部署实现

  • 修改配置文件 nginx.conf 后,重新生成新的 worker 进程,当然会以新的配置进行处理请求,而且新的请求必须都交给新的 worker 进程,至于老的 worker 进程,等把那些以前的请求处理完毕后, kill 掉即可
  • 高并发处理
    • epoll 模型
  • 高可用实现
    • 虚拟 ip

为什么要用 nginx + Tomcat :保证同一个域名下可以进行多个 Tomcat 实例的部署

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

烟酒忠诚

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

金兰素衣

文章 0 评论 0

ゃ人海孤独症

文章 0 评论 0

一枫情书

文章 0 评论 0

清晰传感

文章 0 评论 0

mb_XvqQsWhl

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文