社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  NGINX

学会Nginx,10倍提升你的Web应用性能!

程序猿 • 7 年前 • 566 次点击  
作者:开源最前线(ID:OpenSourceTop) 猿妹


7 年前,Nginx 的份额还只是 3.9%,如今已达到 33.3 %,是增量最快的 Web 服务器。平均而言,在全球 Top 1000 万网站当中,每分钟有 1 网站转向 Nginx。同样是 7 年前,Apache 的份额是 71.5%,如今降到 50%。微软是 IIS 从 20.6% 降到 11.3%。


由此可见,Nginx 近年来市场份额持续攀升,越来越受开发者的青睐,今天,我们就一起来了解下Nginx。

高性能 Web 服务器 Nginx


授权协议:BSD

开发语言:C/C++

操作系统:跨平台

开发厂商:Ngnix

Github:https://github.com/nginx/nginx 78731



Nginx 简介

Nginx是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个 BSD-like 协议下发行,可以在 UNIX、GNU/Linux、BSD、Mac OS X、Solaris,以及 Microsoft Windows 等操作系统中运行。


Nginx 由俄罗斯的程序设计师 Igor Sysoev 所开发,最初供俄国大型的入口网站及搜寻引擎 Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器器中表现较好。


Nginx 的特点


Nginx 是一款面向性能设计的 HTTP 服务器,相较于 Apache、lighttpd 具有占有内存少,稳定性高等优势。与旧版本(<=2.2)的 Apache 不同,nginx 不采用每客户机一线程的设计模型,而是充分使用异步逻辑,削减了上下文调度开销,所以并发服务能力更强。


整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活。在 Linux 操作系统下,nginx 使用 epoll 事件模型,得益于此,nginx 在 Linux 操作系统下效率相当高。同时 Nginx 在 OpenBSD 或 FreeBSD 操作系统上采用类似于 epoll 的高效事件模型 kqueue。


可大量平行处理。Nginx 在官方测试的结果中,能够支持五万个平行连接,而在实际的运作中,可以支持二万至四万个平行链接。



Nginx 的模块与工作原理

Nginx 由内核和模块组成,正是有了这么多模块的支撑,Nginx 的功能才会如此强大。Nginx 的模块从结构上分为核心模块、基础模块和第三方模块:

● 核心模块:HTTP 模块、EVENT 模块和 MAIL 模块

● 基础模块:HTTP Access 模块、HTTP FastCGI 模块、HTTP Proxy 模块和 HTTP Rewrite 模块

● 第三方模块:HTTP Upstream Request Hash 模块、Notice 模块和 HTTP Access Key 模块。


Nginx 的模块从功能上分为如下三类:

● Handlers(处理器模块)。此类模块直接处理请求,并进行输出内容和修改headers信息等操作。Handlers处理器模块一般只能有一个。

● Filters (过滤器模块)。此类模块主要对其他处理器模块输出的内容进行修改操作,最后由Nginx输出。

● Proxies (代理类模块)。此类模块是 Nginx 的 HTTP Upstream 之类的模块,这些模块主要与后端一些服务比如 FastCGI 等进行交互,实现服务代理和负载均衡等功能。



为什么选择 Nginx

Nginx 是一个很牛的高性能Web和反向代理服务器,相比其他服务器,它具有有很多非常优越的特性:

在高连接并发的情况下,Nginx 是 Apache 服务器不错的替代品:Nginx 在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应。

Nginx作为负载均衡服务器;Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理 服务器对外进行服务。 Nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。

Nginx 作为邮件代理服务器:Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器), Last.fm 描述了成功并且美妙的使用经验。

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


目前中国大陆使用 Nginx 网站用户有:新浪、网易、腾讯,另外知名的微网志 Plurk 也使用 Nginx。



●本文编号2697,以后想阅读这篇文章直接输入2697即可

●输入m获取文章目录

↓↓↓ 点击"阅读原文" 进入GitHub详情页  


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/9UvqseXZiu
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/3908
 
566 次点击