nginx服务概念

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

nginx服务概念

  2020-10-09 我要评论

nginx服务概念

在这里插入图片描述

  • Nginx(engine x)

    是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的http://Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
    其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx1.0.4发布。 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
  • 主要用途

    Nginx 可以在大多数 Unix Linux OS 上编译运行,并有 Windows 移植版。 Nginx的1.19.2稳定版已经于2020年8月11日发布,一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。Nginx 的源代码使用 2-clause BSD-like license。 Nginx是一个很强大的高性能Web和反向代理服务,它具有很多非常优越的特性:在连接高并发的情况下,Nginx是Apache服务不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。
  • 服务器

    Nginx作为负载均衡服务:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。
    —处理静态文件,索引文件以及自动索引;打开文件描述符缓冲。
    —无缓存的反向代理加速,简单的负载均衡和容错。
    —FastCGI,简单的负载均衡和容错。
    —模块化的结构。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。如果由 FastCG或其它代理服务器处理单页中存在的多个 SSI,则这项处理可以并行运行,而不需要相互等待。
    —支持 SSL 和 TLSSNI。
  • 代码

    Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。Nginx有自己的函数库,并且除了zlib、PCRE和OpenSSL之外,标准模块只使用系统C库函数。而且,如果不需要或者考虑到潜在的授权冲突,可以不使用这些第三方库。
  • 代理服务器

    作为邮件代理服务:Nginx 同时也是一个非常优秀的邮件代理服务(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。
    Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。

Nginx的特点

1.跨平台
Nginx可以在大多数Linux上编译运行,而且也有Windows的移植版本。
2.配置简单
非常容易上手,配置风格跟程序开发一样,神一般的配置。
3.非阻塞、高并发连接
数据复制时,磁盘I/O的第一阶段是非阻塞的。官方测试能够支撑5万并发连接,在实际生产环境中跑到2~3万并发连接数(这得益于Nginx使用了最新的epoll模型)。
4.事件驱动
通信机制采用epoll模型,支持更大的并发连接。

Nginx服务架构

Nginx服务器使用master/worker 多进程模式。主进程(Master process)启动后,会接收和处理外部信号﹔主进程启动后,通过fork()函数产生一个或多个子进程(work process),每个子进程会进行进程初始化﹑模块调用以及对事件的接收和处理等工作

在这里插入图片描述

1.主进程

主要功能是和外界通信和对内部其他进程进行管理,具体来说有以下几点:
读取Nginx配置文件并验证其有效性和正确性。
建立、绑定和关闭Socket。
按照配置生成、管理工作进程。
接收外界指令,比如重启、关闭、重载服务等指令。
日志文件管理。

2.子进程(worker process)

子进程是由主进程生成,生成数量可以在配置文件中定义。该进程主要工作有:
①接收客户端请求。
②将请求依次送入各个功能模块进行过滤处理。
③IO 调用,获取响应数据。
④与后端服务器通信,接收后端服务器处理结果。
⑤数据缓存、访问缓存索引、查询和调用缓存数据。
⑥发送请求结果,响应客户端请求。
接收主进程指令,如重启、重载、退出等。

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们