热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Nginx极客时间:初识Nginx

1.Nginx适用于那些场景:主要有三个应用:静态资源、API服务、反向代理。(1)反向代理:因为“应用服务”要求开发效率非常高,所以它的运行效率是很低的,它的QPS、TPS、并发




1. Nginx适用于那些场景:

主要有三个应用:静态资源、API服务、反向代理。


(1)反向代理:

因为 “应用服务” 要求 开发效率 非常高,所以它的 运行效率 是很低的,它的 QPS、TPS、并发 都受限,所以需要把很多的 应用服务 组成一个集群,向用户提供高可用性(即上游应用服务器集群,如 Tomcat)。
一旦很多应用服务构成了集群,就需要 Nginx 作为反向代理,它可以把用户的动态请求传导给应用服务。



Nginx的反向代理功能会引申出另外一个功能:缓存加速。
所谓缓存加速的目的是为了:
Nginx作为边缘结点,为了减少客户访问整个链路的时延,把一些常用的资源放在Nginx上,直接返回给用户,比如静态资源。



集群形态的应用服务 有两个需求:


  1. 动态的扩容;
  2. 有些服务器出现问题时可以做“容灾”。

这两个需求Nginx 需要支持。


(2)静态资源:

静态资源是指前端的固定页面,如HTML、CSS、JS、图片等不需要查询数据库,也不需要程序动态处理,直接就能够显示的页面,这类资源一般都放在Nginx服务器上处理。


(3)API服务:

利用Nginx的强大的并发能力,让Nginx直接访问Redis、MySQL等后端数据库,在Nginx上使用Lua、Javascript等语言去访问后端数据库。

在这里插入图片描述


2. 为什么用Nginx:它的5个主要优点:
  1. 高并发、高性能:
    Nginx的高并发、高性能同时具备,设计架构优秀;
  2. 可扩展性:
    主要是基于Nginx的模块化设计,丰富的生态圈,例如Tengine等提供的第三方插件、模块;
  3. 高可靠性:
    在大型系统中留给Nginx等反向代理服务器的宕机时间每年按秒计算,需要Nginx的高可靠性;
  4. 热部署:
    这一特性非常有必要,因为Nginx上可能同时运行着百万级的客户端连接,如果不能支持热部署,就要kill掉所有连接,相当于给每个客户端都发送TCP的RST指令关闭连接,这可能会导致不可知的问题。
    另外,不支持热部署也会导致暂时的服务中断;
  5. BSD许可证:
    可以修改Nginx的源代码后应用到商用场景下。

3. Nginx的四个主要组成部分:
  1. Nginx二进制可执行文件:
    由各模块源码编译出的一个可执行文件;
  2. nginx.conf 配置文件:
    控制Nginx的行为;
  3. access.log 访问日志:
    记录每一条HTTP请求信息;
  4. error.log 错误日志:
    可用于定位问题。


推荐阅读
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 本文总结了Java中日期格式化的常用方法,并给出了示例代码。通过使用SimpleDateFormat类和jstl fmt标签库,可以实现日期的格式化和显示。在页面中添加相应的标签库引用后,可以使用不同的日期格式化样式来显示当前年份和月份。该文提供了详细的代码示例和说明。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
author-avatar
山中幽水_418
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有