作者:山中幽水_418 | 来源:互联网 | 2023-05-17 20:08
1.Nginx适用于那些场景:主要有三个应用:静态资源、API服务、反向代理。(1)反向代理:因为“应用服务”要求开发效率非常高,所以它的运行效率是很低的,它的QPS、TPS、并发
1. Nginx适用于那些场景:
主要有三个应用:静态资源、API服务、反向代理。
(1)反向代理:
因为 “应用服务” 要求 开发效率 非常高,所以它的 运行效率 是很低的,它的 QPS、TPS、并发 都受限,所以需要把很多的 应用服务 组成一个集群,向用户提供高可用性(即上游应用服务器集群,如 Tomcat)。
一旦很多应用服务构成了集群,就需要 Nginx 作为反向代理,它可以把用户的动态请求传导给应用服务。
Nginx的反向代理功能会引申出另外一个功能:缓存加速。
所谓缓存加速的目的是为了:
Nginx作为边缘结点,为了减少客户访问整个链路的时延,把一些常用的资源放在Nginx上,直接返回给用户,比如静态资源。
集群形态的应用服务 有两个需求:
- 动态的扩容;
- 有些服务器出现问题时可以做“容灾”。
这两个需求Nginx 需要支持。
(2)静态资源:
静态资源是指前端的固定页面,如HTML、CSS、JS、图片等不需要查询数据库,也不需要程序动态处理,直接就能够显示的页面,这类资源一般都放在Nginx服务器上处理。
(3)API服务:
利用Nginx的强大的并发能力,让Nginx直接访问Redis、MySQL等后端数据库,在Nginx上使用Lua、Javascript等语言去访问后端数据库。
![在这里插入图片描述](https://img.php1.cn/3cd4a/1eebe/cd5/bcafc120671304eb.webp?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FydEFuZExpZmU=,size_16,color_FFFFFF,t_70#pic_center)
2. 为什么用Nginx:它的5个主要优点:
- 高并发、高性能:
Nginx的高并发、高性能同时具备,设计架构优秀; - 可扩展性:
主要是基于Nginx的模块化设计,丰富的生态圈,例如Tengine等提供的第三方插件、模块; - 高可靠性:
在大型系统中留给Nginx等反向代理服务器的宕机时间每年按秒计算,需要Nginx的高可靠性; - 热部署:
这一特性非常有必要,因为Nginx上可能同时运行着百万级的客户端连接,如果不能支持热部署,就要kill掉所有连接,相当于给每个客户端都发送TCP的RST指令关闭连接,这可能会导致不可知的问题。
另外,不支持热部署也会导致暂时的服务中断; - BSD许可证:
可以修改Nginx的源代码后应用到商用场景下。
3. Nginx的四个主要组成部分:
- Nginx二进制可执行文件:
由各模块源码编译出的一个可执行文件; - nginx.conf 配置文件:
控制Nginx的行为; - access.log 访问日志:
记录每一条HTTP请求信息; - error.log 错误日志:
可用于定位问题。