云服务器

初步认识Nginx

2017-12-26 11:52:58 0

一、Nginx的简介

1.1 web服务器的简介

Web服务器也被称为www服务器,http服务器,其主要功能是提供网上信息浏览服务。

常见的服务器有Apache,Nginx,Lighttpd,Tomcat,IBM WenSphere等,其中使用最广泛的是Apache。

 

1.1.1 Apache服务器

Apache服务器是世界上使用最多的服务器,市场占有率达到60%。世界上很多著名的网站都是Apache的用户,他的优势主要是源代码开放,有移植开放的开发团队,支持跨平台使用(Unix,linux,windows等平台),还有可移植性。Apache的模块支撑非常丰富,虽然在速度,性能上不及其他轻量级的Web服务器,但是它是重量级产品,所消耗的内存比其他服务器要高。

 

1.1.2 Lighttpd服务器

Lighttpd 是一个德国人领导的开源Web服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销、cpu占用率低、效能好以及丰富的模块等特点。

Lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI,CGI,Auth,输出压缩(output compress),URL重写,Alias等重要功能;而Apache之所以流行,很大程度也是因为功能丰富,在lighttpd上很多功能都有相应的实现了,这点对于apache的用户是非常重要的,因为迁移到lighttpd就必须面对这些问题。

 

1.1.3 Tomcat 服务器

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

 

1.1.4 IBM Websphere

WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere 提供了可靠、灵活和健壮的软件。

WebSphere Application Server 是该设施的基础,其他所有产品都在它之上运行。WebSphere Process Server 基于 WebSphere Application Server 和 WebSphere Enterprise Service Bus,它为面向服务的体系结构 (SOA) 的模块化应用程序提供了基础,并支持应用业务规则,以驱动支持业务流程的应用程序。高性能环境还使用 WebSphere Extended Deployment 作为其基础设施的一部分。其他 WebSphere 产品提供了广泛的其他服务。

WebSphere 是一个模块化的平台,基于业界支持的开放标准。可以通过受信任和持久的接口,将现有资产插入 WebSphere,可以继续扩展环境。WebSphere 可以在许多平台上运行,包括 Intel、Linux 和 z/OS。

WebSphere 是随需应变的电子商务时代的最主要的软件平台,可用于企业开发、部署和整合新一代的电子商务应用,如B2B,并支持从简单的网页内容发布到企业级事务处理的商业应用。WebSphere 可以创建电子商务站点, 把应用扩展到联合的移动设备, 整合已有的应用并提供自动业务流程。

 

1.1.5 IIS

iis是Internet Information Services的缩写,意为互联网信息服务,是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和Windows Server 2003一起发行,但在Windows XP Home版本上并没有IIS。IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。

IIS的安全脆弱性曾长时间被业内诟病,一旦IIS出现远程执行漏洞威胁将会非常严重。远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确分析经特殊设计的 HTTP 请求时会导致此漏洞。 成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任意代码,可以导致IIS服务器所在机器蓝屏或读取其内存中的机密数据。

 

1.2 Nginx的发展

Nginx是俄罗斯人伊戈尔.塞索耶夫编写的一款高性能的HTTP和反向代理服务器。Nginx能够选择搞笑的epoll,kqueue,eventport作为网络I/O模型,在高连接并发的情况下,Nginx是Apache服务器的不错替代品,它能够支持50000个并发连接数的相应,而内存,CPU等系统资源的消耗却非常低,运行非常稳定。

Nginx已经在俄罗斯最大的门户网站Rambler Media上运行了多年时间,同时俄罗斯20%的虚拟机平台使用Nginx作为反向代理服务器。

在国内,新浪博客,网易新闻,56.com,Discuz官网论坛,豆瓣,迅雷等多家网站都使用Nginx作为Web服务器或者反向代理服务器。

以下是服务器的市场占有率

1.3 选择Nginx的理由

1.3.1 它可以高并发连接

官方测试Nginx能够支持50000并发连接,在实际环境中可以支持20000-40000个并发连接。主要得益于Nginx使用最新的epoll和kqueue网络I/O模型,而Apache使用传统的select模型,其比较稳定的Prefork模式为多进程模式,需要经常派生子进程,所消耗的CPU等资源要比Nginx高得多。

1.3.2 内存消耗少

Nginx+php(fastcgi)服务器在30000并发连接下,开启10个Nginx进程消耗150MB内存。开启的64个php-cgi进程消耗1280MB内存,加上系统自身消耗的内存,总共2GB不到。如果服务器内存小,完全可以只开启25个php-cgi进程,这样消耗内存才500MB。

在实际环境下,两台Nginx+php5(fastcgi)服务器运行多个复杂性一般的PHP程序,单台服务器能力已经超过700次/秒。相当于每天能承受6000万的访问量,而服务器的负载也不算高。

 

1.3.3 成本低廉

Nginx为开源软件,采用2-clause BSD-like协议,可以免费使用,并且可用于商业用途。

 

1.3.4 其他原因

配置文件非常简单,支持Rewirte重写规则,内置健康检查,节省带宽,稳定性高,支持热部署

服务器综合对比

上一篇: 无

微信关注

获取更多技术咨询