web服务器 Nginx

web服务器 Nginx,第1张

(1)概念

Web服务器是一台使用HTTP协议与客户机浏览器进行信息交流(因此又称为HTTP服务器)、为互联网客户提供服务(信息浏览,下载资源等)的主机。发展趋势:从HTML到XML、从有线到无线、从无声到有声

1.Linux是架设安全高效Web服务器的操作系统

架设Web服务器常见的操作系统:Windows、Linux、Unix。Linux安全性能最高,可以支持多个硬件平台,可以根据不同需求随意修改、调整与复制各种程序的源码以及发布在互联网上,网络功能比较强大。

2.目前主流服务器:Apache、 Nginx、 IIS

Unix/Linux操作系统下使用最广泛的免费HTTP服务器:Apache、Nginx。Windows(NT/2000/2003)操作系统使用ⅡS,综合使用最多的Web服务器是 IIs、Apache。

选择WEB服务器应考虑的本身特性因素有:性能、安全性、日志和统计、虚拟主机、代理服务器、缓冲服务和集成应用程序等。下面介绍目前最主流的三大web服务器:

① 大型

IIS:

微软的Internet Information Services (IIS),IIS 允许在互联网上发布信息,提供了一个图形界面的管理工具,称为Internet服务管理器,可用于监视配置和控制Internet服务。IIS是一种Web服务组件,其中包括Web服务器(网页浏览)、FTP服务器(文件传输)、NNTP服务器(新闻服务)和SMTP服务器(邮件传输),使得在网络上发布信息很容易。它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。

Apache:

Apache是世界上用的最多的Web服务器,源于NCSAhttpd服务器的补丁(pache 补丁)。它的成功之处主要在于:源代码开放、有开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)、可移植性。

② 小型

nginx:

nginx的模块都是静态编译的,对fcgi的支持非常好,在处理链接的的方式上nginx支持epoll,支持通用语言接口(如:php、python、perl等),支持正向和反向代理、虚拟主机、url重写、压缩传输等。

(2)工作原理

当客户端Web浏览器连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。Web服务器主要是处理向浏览器发送HTML以供浏览,而应用程序服务器提供访问商业逻辑的途径以供客户端应用程序使用。应用程序服务器可以管理自己的资源,例如看大门的工作(gate-keeping duties)包括安全(security),事务处理(transaction processing),资源池(resource pooling), 和消息(messaging)。就象Web服务器一样,应用程序服务器配置了多种可扩展(scalability)和容错(fault tolerance)技术。Web服务器的工作原理一般可分成如下4个步骤:

① 连接过程:是Web服务器和其浏览器之间所建立起来的一种连接。查看连接过程是否实现,用户可以找到和打开socket这个虚拟文件,这个文件的建立意味着连接过程这一步骤已经成功建立。

② 请求过程:是Web的浏览器运用socket这个文件向其服务器而提出各种请求。

③ 应答过程:是运用HTTP协议把在请求过程中所提出来的请求传输到Web的服务器,进而实施任务处理,然后运用HTTP协议把任务处理的结果传输到Web的浏览器,同时在Web的浏览器上面展示上述所请求之界面。

④ 关闭连接:是当上一个步骤--应答过程完成以后,Web服务器和其浏览器之间断开连接之过程。Web服务器上述4个步骤环环相扣、紧密相联,逻辑性比较强,可以支持多个进程、多个线程以及多个进程与多个线程相混合的技术。

Web服务器可以解析HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response)。为了处理一个request,Web服务器可以response一个静态页面(HTML页面)或图片,进行页面跳转(redirect),或把动态响应委托给服务器端。Web服务器的代理模型非常简单。当一个request被送到Web服务器里来时,它只单纯的把request传递给可以很好的处理request的程序(服务器端脚本,如:CGI脚本,JSP脚本,servlets,ASP脚本,服务器端JavaScript等)。Web服务器仅仅提供一个可以执行服务器端程序和返回(程序所产生的)响应的环境,而不会超出职能范围。服务器端程序功能通常有:事务处理、数据库连接、和消息等。虽然Web服务器不支持事务处理或数据库连接池,但它可以配置各种策略来实现容错性、可扩展性(如:负载平衡、缓冲)。集群特征经常被误认为仅仅是应用程序服务器专有的特征。

(3)配置

如何设置默认文档;在同一台服务器上架设多个Web站点;(可以通过改变端口号)创建Web虚拟目录;

1、了解DNS主机名和IP地址。

如果此WEB服务器在Internet上,需向ISP申请和注册此服务器的DNS主机名和IP地址。如果此服务器只在企业网内使用,则在内部的DNS服务器上注册。

2、打开服务器文档,选择"端口"-"Internet端口",启用"TCP/ IP端口"。

3、选择"Internet协议",完成以下选项后,保存文档。

① 绑定主机名:

A、选择"是"则您可在"主机名"项中输入主机别名,WEB用户可用此别名替代Domino服务器名访问WEB服务器。

B、选择"否"(缺省)则不允许使用别名。

② DNS查询: 选择"是"则Domino服务器查询发送请求的WEB客户机的DNS名。

③ Domino日志文件和数据库将包含WEB客户机的DNS主机名: 选择"否"(缺省)则不查询,Domino日志文件和数据库将只包含WEB客户机的IP地址( 注意:选择"否"将提高Domino服务器性能,因为服务器不使用资源执行DNS查询

④ "允许HTTP客户浏览数据库":选择"是"则允许WEB用户在URL中使用OpenServer命令来显示服务器上数据库列表。选择"否"(缺省)则不允许。但即使WEB用户不能看到服务器上数据库列表,他们仍能打开有权限访问的单个数据库。

4、启动HTTP任务。在服务器控制台上,输入:loap http

小型项目

(1)概念

1、Nginx(俄罗斯程序设计师Igor Sysoev用C语言进行编写)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3/SMTP)代理服务器。

2、特点:占有内存少(在高连接并发的情况下,Nginx是Apache服务器不错的替代品,能够支持高达 50,000 个并发连接数的响应),并发能力强。

3、中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

4、Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。

5、Nginx有自己的函数库,并且除了zlib、PCRE和OpenSSL之外,标准模块只使用系统C库函数。而且,如果不需要或者考虑到潜在的授权冲突,可以不使用这些第三方库。

(2)安装

官网:http://nginx.org/

选择要安装的版本:

(3)使用

打开conf/nginx.conf,修改端口号,和主页根地址为:打包后index.html的目录

模拟域名配置(本地域名设置):

在浏览器地址栏输入配置好的“域名:端口号”回车:

这里做了些基准测试表明nginx打败了其它的轻量级的web服务器和代理服务器,同样也赢了相对不是那么轻量级的产品。

有人说这些基准测试是不准确的,因为在这样那样的环境下,做的比较不一致。我倾向同意基准测试只是告诉了我们其中一部分情况,你能做的是消除偏见(有人见过所有人都同意一个基准测试是公平的吗?我是没见过。)

不管怎样,这篇文章不是做基准测试来让人们争论(如果你喜欢,可以在Google上找到那样的文章),相反,下面的引述来自人们在现实世界中使用Nginx,在真实的负载下,服务于真正的应用和网站。

引述

我们投资的一些公司把web平台切换到Nginx后,可以显著的解决扩展问题。Nginx明显有效的实现了今天互联网上最大网站数量的增长。

– Thomas Gieselmann, BV Capital.

对今天运行网站的所有人的建议是,想打破性能限制就研究下能否使用Nginx。CloudFlare去年在一个相对较小的基础设施上已经扩展到可以处理每

月超过150亿的浏览量,很大程度上是因为Nginx的扩展性。我的经验表明切换到Nginx可以最大限度的利用现代的操作系统和现有的硬件资源。

– Matthew Prince, CloudFlare的联合创始人和CEO

Apache和Nginx都有能力提供每秒钟庞大的请求服务,但是随着并发数量的增加,Apache的性能开始下降,然而Nginx的性能几乎不会下降。

这里最好的一点是:因为Nginx是基于事件的,它不用为每个请求产生新的进程或线程,所以它的内存使用很低。在我的基准测试中,它的内存使用坐落在2.5M,Apache使用得更多。

– WebFaction

对Nginx v0.5.22 and Apache

v2.2.8我用ab(Apache的基准测试工具)跑了一个简单的测试。在测试过程中,我用vmstat和top检测系统。结果表明在提供静态内容

时,Nginx做得比Apache好。两个服务器都在并发数100时表现最佳。Apache使用4个工作进程(线程模式),30%的CPU和17MB的内

存,每秒钟处理6,500次请求。Nginx使用一个工作进程,15%的CPU,1MB内存,每秒钟处理11,500次请求。

– Linux Journal

Apache好比是微软Word,它有100万个选项,但是你只需要其中6个。Nginx就处理那6项任务,但处理其中5项任务时速度比Apache快50倍。

– Chris Lea

我现在使用Nginx在单一服务器上处理每天超过数千万(也就是每秒钟几百次)的反向代理HTTP请求。在负载高峰期,它消耗大约15MB的内存和10%的CPU,在我的特定配置下(FreeBSD 6)。

在同样的负载下,Apache表现大跌(在大约使用1000个进程后,上帝知道使用了多少内存),Pound表现大跌(如此多的线程,所有的线程栈会消耗400MB以上的内存),还有Lighttpd每小时泄露20MB以上内存(使用更多CPU,但不显著)。

– Bob Ippolito in the TurboGears mailing list, 2006-08-24

我们现在使用Nginx 0.6.29的upstream hash模块为我们需要的Varnish代理提供静态杂凑。我们通常处理8-9千次请求/秒,大约1.2Gb/秒数据在几台Nginx服务器间传输,而且还有很大的成长空间。

– WordPress.com

直到今天,我们一直使用Pound来解决Justin.tv 的负载均衡。它一直使用20%的CPU,在高峰期会达到80%。在极高的负载下,它偶尔会崩溃。

我们只是切换到了Nginx,负载马上就降到了大约3%的CPU使用。我们的页面感觉更快了,尽管这可能是我的错觉。不仅它的配置文件格式容易理解和配置,而且还提供了完整的web服务器功能。我们再也没有遇到尖峰期了,而且我怀疑现有的性能会彻底打败Pound。

– Emmett Shear

我们使用Nginx作为主要的软件用于一个免费的托管平台,我已经在Nginx中开发了一个特定的模块用于banner潜入和统计计算,现在我们的中央服务器可以处理大约150-200Mbit/s高度分散的http流量(所有的文件都很小)。

我认为这是非常好的结果。因为在同样的服务器上面Apache不管怎么优化,甚至都不能处理60-80Mbit/s。

– Alexey Kovyrin

阵子,我们把我们的前端IMAP/POP代理从perdition切换到了nginx…,现在我们又使用nginx来做前端web代理服务器…。最终的结

果是,现在的每台前端代理服务器可以保持超过10,000并发(IMAP, POP, Web &

SMTP)连接(其中很多还是SSL),仅仅只使用了大约10%的CPU。

– FastMail.fm blog

最近,我们的静态内容服务器切换到了Nginx,无疑这是这么多年来我印象最深刻的一款web服务器。我们运行在一台配有8G内存的机器上,但是nginx进程只使用了可笑的1.4Mb。

– Philip Jacob

我们已经用nginx取代了Squid(反向代理)+Apache的方案,平均负载和CPU使用一样降低了一半。另外我们的基准测试表明新的配置每秒钟可以处理的请求数是旧配置的2-3倍。

– HowtoForge

我们用一些CMS系统( Wordpress, Drupal, Joomla, TYPO3等)做了基准测试,结果是Nginx提供网页的速度比Apache快了50%,同时nginx每秒钟处理的请求数(RPS)是Apache的177%。

您好!

安装SSL证书主要将SSL证书配置到服务器环境。安装教程:网页链接

目前全球服务器环境主要分为4个类型:Apache、IIS、Nginx、Tomcat


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/672638.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-27
下一篇2023-07-27

发表评论

登录后才能评论

评论列表(0条)

    保存