Nginx


# Nginx

本系列以 Nginx 1.24.0 作为安装版本进行知识点梳理,该版本目前属于 Legacy versions(老版本的稳定版)。

Nginx(engine x)是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。其特点是占有内存少,并发能力强。

Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持 perl 语法)、Bug 非常少的服务。Nginx 启动特别容易,并且几乎可以做到 7*24 不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。

Nginx 代码完全用C语言从头写成。官方数据测试表明能够支持高达 50,000 个并发连接数的响应。


Nginx 的主要作用:

  • 正向代理和反向代理
  • 负载均衡
  • HTTP 服务器(动静分离)

Nginx 处理访问请求的原理:

  1. 浏览器输入域名:www.baidu.com
  2. 浏览器将请求添加协议
  3. 针对访问的域名进行解析(DNS 解析:把域名解析成对应 IP 的过程)
  4. 发起 TCP 连接请求,发送 http 请求报文
  5. 服务端中 Nginx 通过端口接收到 http 报文请求之后,通过报文中请求域名与自己配置文件中的 server 模块中的 server_name 进行匹配
  6. 交由 location 模块匹配所请求的 uri 信息,根据响应规则进行处理
  7. 通过调用内核,由内核调用磁盘,取得相应资源,封装后返回给用户

关于 Nginx 的知识点,主要参考:

  • 网上各种资料
  • 工作生产实践