Nginx是什么?
Nginx是一款高性能的开源Web服务器和反向署理服务器,同时也是一款可扩展的HTTP服务器,其特点是占用资源少,处理静态文件快,而且能够供给 HTTP 缓存服务、负载均衡等高档功用。其使用广泛,被广泛用于静态Web服务器或反向署理服务器的人物。
为什么要使用Nginx?
相较于传统的Web服务器,Nginx具有以下优势:
- 处理静态文件效率高,能够处理大量并发衔接;
- 能够进行反向署理和负载均衡,支撑HTTP、HTTPS、SMTP、POP3、IMAP等多种协议;
- 支撑HTTP缓存和Gzip紧缩,进步Web使用呼应速度;
- 能够进行HTTP恳求约束和拜访认证,进步Web使用安全性;
- 支撑动态模块扩展,具有良好的可扩展性。
Nginx的根本结构
Nginx的根本结构由Master进程和多个Worker进程组成。Master进程首要负责装备文件的读取、转发信号给Worker进程和其他进程办理等工作;Worker进程则负责处理实践的网络恳求。Nginx的根本工作流程如下图所示:
根本原理
根据上述概念和反向署理技能,Nginx 的根本原理能够概括如下:
1. 客户端发送恳求至 Nginx。假如恳求的是静态资源,则直接回来恳求成果;假如恳求的是动态资源,则将恳求转发到后端 Web 使用服务器上进行处理。
2. Nginx 能够对恳求进行分流,根据不同的规矩将恳求分配到不同的 Web 使用服务器上进行处理。
3. 后端 Web 使用服务器接收到恳求后,进行相应的处理,然后将呼应成果回来给 Nginx。
4. Nginx 将 Web 使用服务器的呼应成果回来给客户端。
Nginx根本组成
Nginx 首要由以下几个组件组成:
- Nginx 中心模块。Nginx 中心模块包含一系列的根底模块,例如 Event、Epoll、Select、I/O 多路复用等。这些模块首要用于处理客户端恳求、办理客户端衔接、完成负载均衡等根底功用。
- HTTP 模块。HTTP 模块负责处理 HTTP 恳求和呼应,能够供给 HTTP 缓存、反向署理等高档功用。
- Stream模块。Stream模块支撑TCP和UDP协议,能够完成分流、负载均衡等高档功用。
- 邮件模块。邮件模块可用于 SMTP、POP3、IMAP 等邮件协议的署理和转发。
- 第三方模块。Nginx 支撑扩展第三方模块,例如 Modsecurity、Http Redis 等,然后完成更多的高档功用。
Nginx装备文件
Nginx 的装备文件是由一系列指令组成的文本文件,首要用于装备 Nginx 的根本参数。最常用的指令包含 server、location、proxy_pass 等。其中,server 指令用于装备 Nginx 的根底参数,例如监听的端口、域名等;location 指令用于装备恳求的地址映射,例如将恳求转发到对应的 Web 使用服务器上;proxy_pass 指令用于装备反向署理服务地址。
Nginx 的装备文件一般位于 /etc/nginx/nginx.conf,其语法采用了类似于 C 语言的指令结构。
Nginx的常用装备项
Nginx的常用装备项包含:
- worker_processes:指定Worker进程数;
- error_log:指定Nginx的错误日志文件途径;
- access_log:指定Nginx的拜访日志文件途径;
- listen:指定Nginx监听的端口和IP;
- server_name:指定Nginx的服务器域名;
- location:指定Nginx的URL匹配规矩。
反向署理和正向署理
-
什么是署理?
署理是一种网络服务,充任客户端和长途服务器之间的中间人,将客户端恳求转发给长途服务器,并将长途服务器的呼应转发给客户端。
署理的效果
署理的效果首要有以下几个方面:
躲藏实在服务器的IP地址;
能够进行拜访控制和拜访约束;
增强Web使用的安全性;
进步Web使用的可用性和性能。
正向署理和反向署理简介
-
正向署理和反向署理是两种常见的署理方法:
正向署理:署理服务器充任客户端的人物,向长途服务器发送恳求,并将呼应成果回来给客户端。这种署理方法一般使用于躲藏客户端的实在IP地址或许拜访墙外的Web资源。
反向署理:署理服务器充任长途服务器的人物,向客户端供给服务,并将恳求转发给后端实在的服务器,将呼应成果回来给客户端。这种署理方法一般使用于进行负载均衡和进步Web使用的可用性和性能,Nginx 首要采用了反向署理技能。所谓反向署理是指,Nginx 作为 Web 使用服务器前面的负载均衡器,客户端的恳求进入 Nginx 后,Nginx 协助客户端向后端的 Web 使用服务器建议恳求,并将 Web 使用服务器的呼应成果回来给客户端。而客户端并不知道自己的恳求是经过 Nginx 宣布的。 这种反向署理的原理,实践上便是客户端恳求处理的责任从 Web 使用服务器转移到了 Nginx 上,Nginx 负责办理和协调 Web 使用服务器,然后完成负载均衡和资源优化的意图。
反向署理和正向署理的差异
反向署理和正向署理的差异首要在于署理服务器的人物不同:
- 反向署理:署理服务器充任长途服务器的人物,向客户端供给服务。客户端无法直接拜访后端实在服务器,也不知道实在服务器的IP地址和端口号。
- 正向署理:署理服务器充任客户端的人物,向长途服务器发送恳求,并将呼应成果回来给客户端。客户端无法直接拜访长途服务器,也不知道长途服务器的IP地址和端口号。
静态资源和动态资源
在讲解 Nginx 的根本原理时,还需求了解一下静态资源和动态资源的概念。
-
静态资源,指的是文件内容不会发生改变的资源,例如 CSS、JS、图片、Html 页面等。
-
动态资源,指的是文件内容会随着恳求发生变化的资源,例如 ASP、PHP、JSP 页面(这儿的动态资源指的是需求服务器端脚本解析的文件,不是 JavaScript 中的动态效果)。
结语
以上便是Nginx根本原理和常识,以及反向署理和正向署理的介绍。期望对您有所协助。