当前位置:文档之家› 三大WEB服务器对比分析(apache-lighttpd-nginx)

三大WEB服务器对比分析(apache-lighttpd-nginx)

三大WEB服务器对比分析(apache-lighttpd-nginx)
三大WEB服务器对比分析(apache-lighttpd-nginx)

WEB apache ,lighttpd,nginx

(apache lighttpd nginx)

1. lighttpd

Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd 是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。

Lighttpd使用fastcgi方式运行php,它会使用很少的PHP进程响应很大的并发量。

Fastcgi的优点在于:

· 从稳定性上看, fastcgi是以独立的进程池运行来cgi,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行逻辑.

· 从安全性上看, fastcgi和宿主的server完全独立, fastcgi怎么down也不会把server搞垮,

· 从性能上看, fastcgi把动态逻辑的处理从server中分离出来, 大负荷的IO处理还是留给宿主server, 这样宿主server可以一心一意作IO,对于一个普通的动态网页来说, 逻辑处理可能只有一小部分, 大量的图片等静态IO处理完全不需要逻辑程序的参与(注1)

· 从扩展性上讲, fastcgi是一个中立的技术标准, 完全可以支持任何语言写的处理程序(php,java,python...)

2.apache

apache是世界排名第一的web服务器, 根据netcraft(https://www.doczj.com/doc/aa15926512.html,)所作的调查,世界上百分之五十以上的web服务器在使用apache.

1995年4月, 最早的apache(0.6.2版)由apache group公布发行. apache group 是一个完全通过internet进行运作的非盈利机构, 由它来决定apache web服务器的标准发行版中应该包含哪些内容. 准许任何人修改隐错, 提供新的特征和将它移植到新的平台上, 以及其它的工作. 当新的代码被提交给apache group时, 该团体审核它的具体内容, 进行测试, 如果认为满意, 该代码就会被集成到apache的主要发行版中.

apache 的特性:

1) 几乎可以运行在所有的计算机平台上.

2) 支持最新的http/1.1协议

3) 简单而且强有力的基于文件的配置(httpd.conf).

4) 支持通用网关接口(cgi)

5) 支持虚拟主机.

6) 支持http认证.

7) 集成perl.

8) 集成的代理服务器

9) 可以通过web浏览器监视服务器的状态, 可以自定义日志.

10) 支持服务器端包含命令(ssi).

11) 支持安全socket层(ssl).

12) 具有用户会话过程的跟踪能力.

13) 支持fastcgi(只在apache1.3时支持,apache2以后的版本不再支持了)

14) 支持java servlets

15) 不支持epoll(这年头,epoll几乎是性能的必备,这也是为什么apache的并发性能比其他两款web软件差的主要原因吧)

16) 非常好用的proxy和proxy_ajp(很多人用它作为tomcat的前端)

3.nginx

Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发.

Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。其拥有匹配Lighttpd的性能,同时还没有Lighttpd的内存泄漏问题,而且Lighttpd的mod_proxy 也有一些问题并且很久没有更新。但是Nginx并不支持cgi方式运行,原因是可以减少因此带来的一些程序上的漏洞。所以必须使用FastCGI方式来执行PHP程序。

nginx做为HTTP服务器,有以下几项基本特性:

处理静态文件,索引文件以及自动索引;打开文件描述符缓冲.

无缓存的反向代理加速,简单的负载均衡和容错.

FastCGI,简单的负载均衡和容错.

模块化的结构。包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。如果由FastCGI或其它代理服务器处理单页中存在的多个SSI,则这项处理可以并行运行,而不需要相互等待。

Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率。它支持内核Poll模型,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数。

Nginx具有很高的稳定性。其它HTTP服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当前apache一旦上到200个以上进程,web响应速度就明显非常缓慢了。而Nginx采取了分阶段资源分配技术,使得它的CPU 与内存占用率非常低。nginx官方表示保持10,000个没有活动的连接,它只占2.5M内存,所以类似DOS 这样的攻击对nginx来说基本上是毫无用处的。就稳定性而言,nginx比lighthttpd更胜一筹。

Nginx支持热部署。它的启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下,对软件版本进行进行升级。

.3WEB

server Apache Nginx Lighttpd

Proxy代理非常好非常好一般

Rewriter 好非常好一般

Fcgi 不好好非常好

热部署不支持支持不支持

系统压力比较很大很小比较小

稳定性好非常好不好

安全性好一般一般

技术支持非常好很少一般

静态文件处理一般非常好好

Vhosts虚拟主机支持不支持支持

反向代理一般非常好一般

Session sticky 支持不支持不支持

epoll 不支持支持支持

注:在相对比较大的网站,节约下来的服务器成本无疑是客观的。而有些小型网站往往服务器不多,如果采用 Apache 这类传统 Web 服务器,似乎也还能撑过去。但有其很明显的弊端: Apache 在处理流量爆发的时候(比如爬虫或者是 Digg 效应) 很容易过载,这样的情况下采用 Nginx 最为合适。

建议方案:

Apache 后台服务器(主要处理php及一些功能请求如:中文url)

Nginx 前端服务器(利用它占用系统资源少得优势来处理静态页面大量请求)

Lighttpd 图片服务器

总体来说,随着nginx功能得完善将使他成为今后web server得主流。

.:

将分别测试3种软件在对动态页面和静态页面请求及并发时的响应时间

LIGHTTPD

n/-c(ab参数) cpu% Mem RequestsperSecond

Time taken for tests

100000/100 64 60 462.75 21.6 100000/200 67 60 312.07 32.4 100000/500 83 60 137.24 72.8 100000/1000

出现错误丢包94 60 126.6

78.9

NGINX

n/-c(ab参数) cpu% Mem RequestsperSecond Time

taken for tests 100000/100 34.6 140 943.66 10.597 100000/200 35.6 110 924.32 10.818 100000/500 34.3 110 912.68 10.956 100000/1000 37 160 832.59 12.106

APACHE

n/-c(ab参数) cpu% Mem RequestsperSecond

Time taken for tests

100000/100 40.6 170 690.72 14.47 100000/200 41.1 180 685.39 14.59 100000/500 42.3 190 633.64 15.78 100000/1000 43.1 200 547.53 18.26

LIGHTTPD

n/-c(ab参数) cpu% Mem RequestsperSecond

Time taken for tests

1000/100 50 200 33.54 29.816 1000/200 52 210 30.43 32.858 1000/500 54 230 25.79 38.76 1000/1000 62 250 24.83 40.28

NGINX

n/-c(ab参数) cpu% Mem RequestsperSecond

Time taken for tests

1000/100 53.8 250 83.12 12.305 1000/200 55.8 250 74.05 13.504 1000/500 56 260 58.99 16.951 1000/1000 58 260 43.41 23.347

APACHE

n/-c(ab参数) cpu% Mem RequestsperSecond

Time taken for tests

100000/100 60 200 27.37 36.541 100000/200 61 220 23.82 41.981 100000/500 73 150 20.59 48.562 100000/1000 53 200 27.18 36.796

●PHPINFO

LIGHTTPD

n/-c(ab参数) cpu% Mem RequestsperSecond

Time taken for tests

100000/100 45 20 168.06 59.504 100000/200 47 22 140.64 71.103

100000/500 49 24 52.80 189.386 100000/1000 在请求到4840时测试测试程序死掉

NGINX

n/-c(ab参数) cpu% Mem RequestsperSecond

Time taken for tests

100000/100 70 120 143.46 69.706 100000/200 72 130 140.57 71.140 100000/500 73 150 135.87 73.601 100000/1000 77 160 132.18 75.657

APACHE 出现丢包

n/-c(ab参数) cpu% Mem RequestsperSecond

Time taken for tests

100000/100 70 180 245.73 40.694 100000/200 72 190 245.79 40.684 100000/500 75 200 241.29 41.443 100000/1000 77 220 236.74 42.239

WEB

网站名操作系统 web服务器

1.

搜狐 LINUX apache 1.3.37

新浪 LINUX apache 2.0.54

迅雷 LINUX nginx 0.6.31

163 LINUX apache 2.2.6

2.

百度 unknown BWS 1.0

Google linux gws

Sougou FreeBSD apache 2.2.4

Hao123 linux apache 2.2.4

4.

126 linux apache

Hotmail win2003 microsoft-IIS 6.0

新浪邮箱 F5 Big-IP apache 2.2.8

263 linux apache 2.2.6

5.

新浪博客 linux nginx 0.5.35

搜狐博客 linux nginx

迅雷博客 linux nginx 0.6.32

天涯博客 F5 Big-IP Microsoft-IIS/5.0

6

优酷 linux apache

土豆 linux apache

Ku6 linux apache

六间房 linux nginx 0.6.14

Lighttpd:单台支持上万并发;请求处理速度是Apache的3-5倍;对多CPU支持不太好;有内存泄漏问题

典型范例-YouTube、Mop、SF、豆瓣

豆瓣如今很多lightty也改为Nginx了,留下图片服务器使用lighttpd。

Nginx(Engin X) 处理速度比Lighttpd快10%-15%;在Proxy方面,Nginx>Lighttpd;在FastCGI支持方面,Lighttpd>Nginx;典型范例-六间房,新浪Blog

Apache 使用范围最广;在高负载环境下,性能不突出,单台仅能承受上千个并发数;对DOS(拒绝服务攻击)抵御能力差;只有Apache 1.3对FastCGI有支持,不适合使用3P(PHP、Perl和Python)的

Web2.0站点

如果是新兴的Web Server 2.0站点,Lighttpd和Nginx凭借对FastCGI的支持,和高负载下的良好表现,将会是最好的选择;如果是传统站点,Apache是最通用的选择。

JavaWeb工作原理

[JavaWeb工作原理] [第一章]

一什么是JavaWeb? JavaWeb是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客户端两部分,在第一个项目(贷款计息查询服务器)的时候已经知道在Web服务器的作用是接受客户端请求,然后向客户端返回一些结果.浏览器的作用是允许用户请求服务器上的某个资源,并且向用户显示请求的结果,HTML用于告诉浏览器怎样向用户显示内容,HTTP是WEB上客户端和服务器之间通信所用的协议 二HTTP协议 Http是一种超文本传输协议(HyperText Transfer Protocol),他是一套计算机在网中通信的一种规则,在TCP/IP体系结构中,HTTP属于应用层协议,位于TCP/IP协议的顶层.HTTP是一种无状态的协议,意思是指在WEB浏览器和WEB服务器之间不需要建立持久的连接,HTTP 定义的事物处理由以下四步组成: 1.客户端和WEB服务器建立连接 a)客户端和服务器的连接就是与客户端与服务器的一个TCP Socket套接字连接 2.客户端发送HTTP请求 a)请求包含:请求行--请求行是一个ACCII文本行,由请求的HTTP方法,请求的 URL,HTTP版本组成,中间用空格分开, b)请求头---HTTP协议使用HTTP头来传递请求的元信息, c)空行---发送回车符和退行,通知服务器以下不再有请求头 d)消息体--HTTP请求中带有查询字符串时,如果是GET方法,查询字符串或表单 数据附加在请求行中,那么消息体就没有内容,如果是POST方法,查询字符串或 表单数据就添加在消息体重 3.服务器端接收客户端的HTTP请求,生成HTTP相应回发 a)响应包含:状态行---每个HTTP响应以一个状态行开头,它由HTTP协议版本, 响应状态码,响应描述组成,中间用空格分开 b)响应头---响应头与请求头一样,也是一个用冒号分隔符的名称/值对,冒号前面 是HTTP头得名称,后面是HTTP头得值 c)空行---发送回车符和退行,通知服务器以下不再有响应头 d)消息体---要发送回客户端的HTML文档或其他要显示的内容等,WEB服务器 把要发送给客户端的文档信息放在消息体中 4.服务器端关闭连接,客户端解析并回发响应,恢复页面 a)HTTP响应到达客户端后,浏览器先解析HTTP响应中的状态行,查看请求是否 成功的状态代码,然后开始一步步解析响应

实验6windowsserver2008综合实验-web服务器配置

----Web服务器配置 实验目的 (1)根据实验的目标和要求画出网络拓扑图,查找IP地址,制定域名规划,提出各种服务器配置方案; (2)掌握在windows server 2008环境下架构web网站; (3)掌握测试web服务器的方法。 实验环境 实验分两人一组,每组每人分配一台PC,一个windows server2008安装ISO文件。 实验要求 假设每位同学成立了自己的公司,现要求在公司内部安装windows server 2008,用自己的姓名拼音作为域名,发布自己公司的网站,建立内部的web服务,可以通过客户机访问和实现web服务。 实验步骤 1、步骤一:安装Web服务 windows server2008上安装Web服务器步骤 1)点击“开始”->“管理工具”->“服务器管理器”,进入服务器管理工具界面。

2)在服务器管理工具界面时面点击“角色”->“添加角色”,进入到添加角色界面 3)在选择服务器角色对话框中将“Web服务器(IIS)勾选上,点击下一步。 4)在Web服务器(IIS)对话框中,直接点击下一步 5)在选择"Web服务器"角色是,会弹出如图所示窗口,点击"添加必需的功能",然后点击"下一步"。如图所示: 6)在"Web服务器简介(IIS)"界面,直接点击"下一步"。 在"选择角色服务"界面,默认设置,直接点击"下一步"。如图所示: 7)点击安装,进入安装界面。 8)安装完成后,点击 9)web服务器安装成功界面

2.步骤二:设置Web服务 1)运行Internet 信息服务(IIS)管理器 2)选择网站右键添加网站,新建一个“MyWeb站点” 3)填写添加网站信息 4)添加首页文件:转到“文档”窗口,再单击“添加”按钮,根据提示在“默认文档”后输入用户自己网页的首页文件名“”。 5)添加虚拟目录。例如主目录在F:\web目录下,输入“的访问方式就可以调出“F:\web”中的网页文件,这其中的“test”就是虚拟目录。在“MyWeb站点”处单击鼠标右键,选择“新建”-“虚拟目录”,依次在“别名”处输入“test”,在目录出输入“F:\web”后再按照提示操作即可添加成功。 6) 点网站右键—管理网站—重新启动 7)在客户机打开浏览器以IP地址访问测试 8)添加更多的Web站点,因为本实验测试的计算机只有一块网卡,所以采用“一个IP地址

简单Web服务器设计与实现课程设计

计算机网络课程设计报告 题目:简单Web服务器设计与实现 专业: 学号: 学生姓名: 指导教师:

摘要 (2) 关键词 (2) 1. 前言 (3) 1.1 课程设计前准备 (4) 1.2 课程设计的内容 (5) 1.3 课程设计要求 (5) 1.4 课程设计平台 (5) 2. Web服务器的工作原理 (5) 2.1 HTTP协议的作用原理 (5) 2.2 Java开发语言相关知识与技术 (6) 3. 开发环境及套字接编程 (11) 3.1 Web服务器的开发环境 (11) 3.2 Web服务器的套接字编程 (12) 4. WEB服务器的设计与实现 (13) 4.1 Web服务器的程序设计流程 (13) 4.2 用Java实现Web服务器的主要设计步骤及程序 (14) 5. 测试运行 (21) 5.1 调试运行 (21) 6.结束语 (23) 参考文献 (24)

WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信,HTTP协议的作用原理包括四个步骤:连接,请求,应答,关闭应答。在课程设计中,系统开发平台为Win7,程序设计语言采用Java,程序运行平台为Eclipse。在程序设计中,采用了结构化与面向对象两种解决问题的方法。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在商业中解决实际问题。 关键词Java;HTTP;Web服务器

Internet是目前世界上最大的计算机互联网络,与大家的生活、学习、工作有着越来越密切的关系,它遍布全球,将世界各地各种规模的网络连接成一个整体,其用户群十分庞大,因此,建设一个好的Web站点对于一个机构的发展十分重要。近年来,随着网络用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术在Internet中的广泛应用,Web站点向用户提供的服务将越来越丰富,越来越人性化。 本课程设计主要解决由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信的Web服务器的程序设计。 1.1 课程设计前准备 以下的工作均是建立在大量的调查基础上的,是Web服务器开发前期准备工作所解决的问题。 (1)Java简介 Java是由sun公司开发的一种新型的面向对象的程序设计语言,主要用于web页面的设计[1]。Java语言的流行除了因为它能够编制嵌入HTML文件中的Applet外,还在于Java语言本身的面向对象、简单、平台无关性、安全性、多线程等特点。Java语言的发展颇具传奇性,它与Internet的WWW的迅猛发展是分不开的。由于其发展迅速,有人将它比喻为Internet上的世界语。前面讲到在Internet上Web页面的设计采用的是HTML语言,用户借助于Web浏览器(如Netscape,HotJava,IE等),可以访问到远程web服务器上静态的、具有超链接的Web页面[2]。 (2)HTTP协议简介 HTTP 协议是应用层的协议,定义了服务器端和客户端之间文件传输的沟通方式。HTTP协议用于从WWW服务器传输超文本到本地浏览器的传送协议。由于HTTP协议支持的服务不限于WWW,还可以是其它服务,它允许用户在统一的界面下,采用不同的协议访问不同的服务。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示等[3]。

LinuxApacheWeb服务器配置教程

LinuxApacheWeb服务器配置教程 Linux阿帕奇网络服务器配置教程 阿帕奇的主要特点 根据著名的万维网服务器研究公司进行的一项调查,全世界50%以上的万维网服务器使用阿帕奇,排名世界第一。 阿帕奇的出生非常戏剧化。当NCSA万维网服务器项目停止时,那些使用NCSA万维网服务器的人开始用他们的补丁来交换服务器,他们很快意识到有必要建立一个论坛来管理这些补丁。就这样,阿帕奇集团诞生了,后来这个集团在NCSA的基础上建立了阿帕奇。 阿帕奇的主要特点是: 。可以在所有计算机平台上运行; 。支持最新的HTTP 1.1协议; 简单而强大的基于文件的配置; 。支持通用网关接口CGI 。支持虚拟主机; 。支持HTTP认证; 。集成的Perl脚本编程语言; 。集成代理服务器; 。拥有可定制的服务器日志;。支持服务器端包含命令。支持安全套接字层。用户会话过程的跟踪能力;支持FastCGI。支持Java小服务程序。 安装Apache流程

安装Apache 接下来,我们将开始征服阿帕奇的漫长旅程。我们将一步一步地学习使用Apache,从介绍到掌握,通过需求的一步一步的例子。 系统需求 运行Apache不需要太多的计算资源。它运行良好的Linux系统有6-10MB的硬盘空间和8 MB的内存。然而,单独运行Apache可能不是您想要做的。更有可能的是,您希望运行Apache来提供WWW服务,启动CGI流程,并充分利用WWW所能提供的所有惊人功能。在这种情况下,您需要提供额外的磁盘空间和内存空间来反映负载要求。换句话说,它不需要太多的系统资源来启动WWW服务,但是它需要更多的系统资源来为大量的客户提供服务。获取软件 你可以呆在 错误日志命令用于指定错误日志文件名和路径。 命令格式:错误日志[日志文件名] 示例:错误日志/var/ srm.conf Srm.conf是一个资源配置文件,它告诉服务器您想在WWW站点上提供什么资源,在哪里以及如何提供这些资源。 DocumentRoot命令指定主文档的地址。 命令格式:文档根[路径] 示例:文档根目录/主页/ UserDir命令,用于指定个人主页的位置。如果你有一个用户测试,

2-apache Apache_Web 服务器安装部署手册档

重要提示 Web服务器包括apache的安装部署和W AS7 Plugin安装部署两部分,如果的websphere应用服务器使用非集群模式,plugin则不需要安装,只需配置本文2.1章节内容,如果websphere 应用服务器使用群集模式,则需要按照本文2.2章节进行plugin安装配置。 1 Apache安装 Apache的安装和配置现在可以采用脚本自动化安装,脚本就是139ftp上的 apache_install_script.sh 请下载到web服务器中,并执行即可。 注意:在执行脚本安装前请确认web服务器的/opt/apache下没有安装过apache,并且web 服务器能上外网(能ping通https://www.doczj.com/doc/aa15926512.html,) 成功安装apache并测试通过后即可直接继续本文第二章节Was7 Plugin安装 在root下进行root进入方法#su 然后输入密码 1.1 准备安装 关闭系统自带的web服务: #chkconfig httpd off 在线安装gcc #yum install gcc cc 下载并解压安装程序: #cd ~/ #wget https://www.doczj.com/doc/aa15926512.html,/httpd/httpd-2.2.15.tar.gz #tar –zxvf httpd-2.2.15.tar.gz -C /usr/src Web 服务器安装部署手册 Page 4 of 21 1.2 安装Apache Web Server 进入源码目录: #cd /usr/src/httpd-2.2.15 编译源文件: #./configure //(安装到默认目录) 形成安装文件: #make 安装程序: #make install 1.3 验证安装 进入安装后目录: # cd /opt/apache/apache-2.2.15/bin 检查进程模式: #./apachectl –l Compiled in modules: core.c worker.c http_core.c mod_so.c 启动Apache Web Server:

计算机网络 实验10 Web服务器 的配置

实验10 Web服务器的配置 一、实验目的 1、了解Web工作原理; 2、掌握基于IIS的Web服务器的创建和配置; 二、实验要求 1、设备要求:计算机1台(装有Windows Server 2003操作系统及活动目录、装有网卡), 集线器、交换机,UTP线(直通、交叉);Windows Server 2003安装源; 2、每组1人,独立完成。 三、实验基础 Web服务的实现采用B/W(Browser/Web Server)模式,Server信息的提供者称为Web 服务器,Browser信息的获取者称为Web客户端。Web服务器中装有Web服务器程序,如:Netscape iPlanet Web Server、Microsoft Internet Information Server、Apache等;Web 客户端装有Web客户端程序,即:Web浏览器,如:NetscapeNavigator、Microsoft Internet Explorer、Opea等。 Web服务器是如何响应Web客户端的请求呢?Web页面处理大致分3个步骤: 第一步:Web浏览器向一个特定服务器发出Web页面请求; 第二步:收到Web页面请求的Web服务器寻找所请求的页面并传送给Web浏览器; 第三步:Web浏览器接收所请求的Web页面并将其显示出来。 Web应用的基础还包括HTTP和HTML两个协议。 HTTP协议是用于从Web服务器传输超文本到本地浏览器的传输协议。它使浏览器的工作更高效,从而减轻网络负担;它不仅使计算机传输超文本正确、快速,而且可以确定传输文档的哪一部分以及哪一部分的内容首先显示等。HTTP使用一个TCP/IP连接,默认TCP80端口。 HTML 是用于创建Web文档或页面的标准语言,由一系列的标记符号或嵌入希望显示的文件代码组成,这些标记告诉浏览器应该如何显示文章和图形等内容。 四、内容与步骤 1、IIS6.0的安装、配置和测试; (1)从控制面板安装IIS; 第1步单击“开始” →“添加或删除程序” →“添加/删除Windows组件”,显示“Windows 组件向导”窗口,在“组件”列表框中依次选择“应用程序服务器” →“详细信息”,显示“应用程序服务器”窗口,选中“https://www.doczj.com/doc/aa15926512.html,”复选框以启用https://www.doczj.com/doc/aa15926512.html,功能,如图所示。

java web 工作原理总结

总结 第一章java web 工作原理 1.1、web应用程序有web服务器,web客服端浏览器,HTTP协议以及静态HTML文件。 Web服务器的作用是接受客服端请求,然后向客服端返回些结果;浏览器的作用是允许用户请求服务器上的某个资源,并且向用户显示请求的结果; HTML是用于告诉浏览器怎么样向用户显示内容; HTTP是web上客服端和服务器之间通信所用的协议。 1.1.2 HTTP协议将来自于客服端的请求信息封装成HTTP请求; 封装的信息当中包括请求行、请求头、消息体、分隔请求头、消息体的一个空行。 请求行是一个ASCII文本行,由三个标记组成:请求的HTTP方法、请求的URL、HTTP版本;中间用空格分开例如: GET /lovobook/index.html HTTP/1.0 在HTTP1.1版本中请求方法有八种分别是下面: GET:用于向服务器检索资源在HTTP请求头 POST:用于向服务器发送资源,并要求指定的URI处理在消息体HEAD:于GET方法相同,服务器只返回状态行和头标,并不返回请求文档。 PUT:请求服务器保持请求数据作为指定的URI新内容;

DELETE:请求服务器删除URI中命名的资源; OPTIONS:请求关于服务器支持的请求方法信息; TRACE:请求web服务器反馈HTTP请求和其头标;CONNECT:已文档化但当前未实现的一个方法,预留做隧道处理;请求头: HTTP协议使用HTTP头来传递请求的元信息。HTTP头是一个用冒号分隔的名称/值对,冒号前面是HTTP头的名称,后面是HTTP头的值。 1.1.3 HTTP响应包括:状态行、响应头、消息体、分割消息头、响应头。状态行里面出现: 1XX:表示信息,请求收到,继续处理。 2XX:表示成功 3XX:表示重定向 4XX:表示客服端错误 5XX:表示服务器错误 1.2 Web服务器的缺陷是只能向用户提供静态网页内容。 1.3 服务器端网页编程就是web服务器创建动态服务器端内容的过程。 1.3.1 服务器端网页编程出现得最早的技术就是CGI,它的缺点就是每次请求一个CGI资源,将在服务器上创建一个新的进程,并且通过标准输

linux下用apache搭建web服务器

Linux下搭建web服务器 Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的 Web服务器软件之一。Apache取自“a patchy server”的读音,意 思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、 速度快、性能稳定,并可做代理服务器来使用。 本来它只用于小型或试验 Internet网络,后来逐步扩充到各种Unix 系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点 而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web 服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon.c om、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux 系统平台上)以及它的可移植性等方面。 Apache的诞生极富有戏剧性。当NCSA WWW服务器项目停顿后,那些 使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache。 Apache的主要特征是: 可以运行上所有计算机平台; 支持最新的H TT P1.1协议; 简单而强有力的基于文件的配置; 支持通用网关接口CGI; 支持虚拟主机; 支持H TT P认证; 集成P erl脚本编程语言;

Web服务器的实验报告

实验报告 一、实验目标及要求 1、实习目标:(1)掌握windows环境下web服务器的配置。 (2)学会对当今主流的web开发环境ASP和JSP配置自己 的web服务器,为今后开发网站打下基础。 2、实习要求:(1)通过本次实验,理解WEB服务的工作原理; (2)掌握在Windows系统上实现WEB服务,IIS和TOMCAT 服务器配置,ASP和JSP工作环境的配置。 二、实验步骤 1、实验环境描述(包括硬软件): IIS是Internet Information Server的缩写,它是微软公司主推的Web服务器,最新的版本是Windows2000里面包含的IIS 5.0,IIS与WindowNT Server 完全集成在一起,因而用户能够利用Windows NT Server和NTFS(NT File System,NT的文件系统)内置的安全特性,建立强大、灵活而安全的Internet和Intranet 站点。 IIS的一个重要特性是支持ASP。IIS 3.0版本以后引入了ASP,可以很容易的张贴动态内容和开发基于Web的应用程序。IIS的安装,管理和配置都相当简单。 IIS包括WEB、FTP、Mail等等服务器。因为IIS的FTP和Mail服务器不是很好用,一般用IIS只用其WEB服务器。 目前运行IIS的最理想平台是Windows2000高级服务器版和服务器版。 Win9x/Me里也有IIS,但只是PWS(个人WEB服务器),功能很有限,只支持1个连接。WinXP里的IIS也只支持10个连接。如果您要使用IIS,请使用Windows 2000高级服务器版,在这里我用Windows 2000高级服务器版给大家做演示。 2、操作步骤: IIS的安装步骤(将WINDOWS 2000的安装光盘放入光驱内): 1、点击:【开始】->【设置】->【控制面板】->【添加/删除程序】,打开“添加/删除程序”对话框。 2、点击左边菜单栏中“添加删除Windows组件”项,打开“Windows组件向导”对话框(这个过程可能需要花几十秒钟),在对话框“组件”列表中,选中“Internet 信息服务(IIS)”项。 3 、将“Windows 2000”安装盘放入光驱中,然后点击“下一步”。这个步骤可能会花几分钟。 4、点击“完成”按钮,完成IIS的安装。 IIS的配置步骤:

Web服务器的工作原理

Web服务器工作原理概述 很多时候我们都想知道,web容器或web服务器(比如Tomcat或者jboss)是怎样工作的?它们是怎样处理来自全世界的http请求的?它们在幕后做了什么动作?Java Servlet API(例如ServletContext,ServletRequest,ServletResponse和Session这些类)在其中扮演了什么角色?这些都是web应用开发者或者想成为web应用开发者的人必须要知道的重要问题或概念。在这篇文章里,我将会尽量给出以上某些问题的答案。 请集中精神! 文章章节: ?什么是web服务器、应用服务器和web容器? ?什么是Servlet?他们有什么作用? ?什么是ServletContext?它由谁创建? ?ServletRequest和ServletResponse从哪里进入生命周期? ?如何管理Session?知道cookie吗? ?如何确保线程安全? 什么是web服务器,应用服务器和web容器? 我先讨论web服务器和应用服务器。让我在用一句话大概讲讲: “在过去它们是有区别的,但是这两个不同的分类慢慢地合并了,而如今在大多在情况下和使用中可以把它们看成一个整体。” 在Mosaic浏览器(通常被认为是第一个图形化的web浏览器)和超链接内容的初期,演变出了“web服务器”的新概念,它通过HTTP协议来提供静态页面内容和图片服务。在

那个时候,大多数内容都是静态的,并且HTTP 1.0只是一种传送文件的方式。但在不久后web服务器提供了CGI功能。这意味着我们可以为每个web请求启动一个进程来产生动态内容。现在,HTTP协议已经很成熟了并且web服务器变得更加复杂,拥有了像缓存、安全和session管理这些附加功能。随着技术的进一步成熟,我们从Kiva和NetDynamics学会了公司专属的基于Java的服务器端技术。这些技术最终全都融入到我们今天依然在大多数应用开发里使用的JSP中。 以上是关于web服务器的。现在我们来讨论应用服务器。 在同一时期,应用服务器已经存在并发展很长一段时间了。一些公司为Unix开发了Tuxedo(面向事务的中间件)、TopEnd、Encina等产品,这些产品都是从类似IMS和CICS的主机应用管理和监控环境衍生而来的。大部分的这些产品都指定了“封闭的”产品专用通信协议来互连胖客户机(“fat”client)和服务器。在90年代,这些传统的应用服

一次访问Web服务器的详细通信过程

一次访问Web服务器的详细通信过程 在这一讲中我们要了解一下Internet中一台计算机访问Web服务器的全部过程,从中可以窥探Internet是如何工作的,本讲中会涉及到网络(或Internet)的专业术语、概念及Internet的重要内容,在以后的讲座中我们会详细讲解。本讲主要是想让大家明网络是怎样交付数据、寻址等,即Internet的基本工作原理。 一、网络环境说明 图一 本次网络通信试验采用Packet Tracer 5.0思科网络模拟软件。有关Packet Tracer 5.0的使用与技巧请参考我的相关博文。此次模拟环境中使用5个路由器连接两个以太网,其中192.168.2.0/24网段为服务器,192.168.2.1为DNS服务器,192.168.2.2为Web服务器,域名为https://www.doczj.com/doc/aa15926512.html,,192.168.2.3为TFTP服务器,192.168.1.0/24网段为Client PC,其网关为192.168.1.254。每个路由器使用RIP路由协议发现路由。 二、PC0(IP地址为192.168.1.1)访问https://www.doczj.com/doc/aa15926512.html,的过程详解 1、把域名https://www.doczj.com/doc/aa15926512.html,解析为IP地址,这就要使用DNS协议,向DNS服务器查询域为https://www.doczj.com/doc/aa15926512.html,的IP地址。 a、PC0组装成一个DNS数据包,该数据包包含了一条查询域名为https://www.doczj.com/doc/aa15926512.html,的IP是多少的问题,然后再把该DNS数据包加上一个UDP报头,在UDP报头的目的端口为53,源端口随机选择,把UDP 数据报交给IP层,加上目的地址即DNS服务器的IP地址:192.168.2.1,源地址为本机IP地址,IP数据包交给网络接口层(也可以理解为数据链路层)准备发给本网段网关,由网络转发出去。在网络接口层又封闭为数据帧,帧头的源MAC地址为本机网卡MAC地址,目的地址应该为网关的MAC地址,但此时PC0并

配置和管理Web服务器实验报告

实验报告 专业班级成绩评定_______ 学号姓名教师签名_______ 实验题目配置和管理Web服务器实验时间 一、实验目的: 1.掌握Web服务器的基本配置方法。 2.学习设置Web服务器的安全控制。 二、实验环境:Windows Server 2003操作系统,IIS组件。 三、实验内容: 1.配置和管理Web服务器。 2.掌握IIS的基本配置方法。 3.设置IIS的安全性控制。 四、实验步骤: 1.进行IIS的基本配置,启动Microsoft管理控制台。 方法:通过执行Windows Server 2003的“开始|管理工具|Internet服务管理器”命令即可启动Microsoft的管理控制台。 2.新建网站。

a.安装后,选择在其中建立网站的主机,然后单击“活动工具栏”中的“操作”按 钮,在出现的菜单中选择“新建|网站”选项,“网站创建向导”对话框就会出现 在屏幕上。 b.按照“网站创建向导”的要求,分别输入网站描述、网站IP地址、网站TCP端 口、网站主目录、网站访问权等信息。 图 IP地址和端口设置(本机的IP地址为端口号:80 路径为C:\实验配置和管理Web 服务器) 后来指导老师建议我以后在选择网站TCP端口时最好不设成80,可改为801。

设置访问权限时,应十分谨慎,以避免非法用户破坏Web网站中的内容。 3.网站的启动与停止。 如果网站当前为“已停止”状态,可以

使用活动工具栏中的启动项目按钮,启动该网 站。也可在网站上单击右键,选“启动”来开启。 如果网站当前为启动状态,则用户可以使用暂停或停止按钮 ,暂停或停止网站。 4.创建虚拟目录。 创建虚拟目录就是建立一个到实际目录的指针,实际目录下的内容并不需要迁移到网站的主目录下。 方法:a.选择要在其中创建虚拟目录的网站,然后单击“活动工具栏”中的“操作”按钮,在出现的菜单中选择“新建|虚拟目录”选项,则启动“虚拟目录创建向导”。 b.按照“虚拟目录创建向导”的要求,分别输入虚拟目录使用别名、目录的实际路 径、虚拟目录的访问权限等信息。

web服务器apache架构与原理

web服务器apache架构与原理 web服务器 在开始了解Apache前,我们先熟悉一下web服务器,因为apache也是web服务器的一种。 Web系统由客户端(浏览器)和服务器端两部分组成。Web系统架构也被称为B/S架构。最常见的Web服务器有Apache、IIS等,常用的浏览器有IE、Firefox、chrome等。当你想访问一个网页时,需要在浏览器的地址栏中输入该网页的URL(Uniform Resource Locator,简称为URL)地址,或者是通过超链接链接到该网页。浏览器会向该网页所在的服务器发送一个HTTP请求,服务器会对接收到的请求信息进行处理,然后将处理的结果返回给浏览器,最终将浏览器处理后的结果呈现给用户。 web服务器端的工作流程: (1)客户端发送请求 客户端(通过浏览器)和Web服务器建立TCP连接,连接建立以后,向Web服务器发出访问请求(如get)。根据HTTP协议,该请求中包含了客户端的IP地址、浏览器的类型和请求的URL等一系列信息。 (2)服务器解析请求 Web服务器对请求按照HTTP协议进行解码来确定进一步的动作,设计的内容有三鼐要点:方法(GET)、文档(/sample.html)、和浏览器使用的协议(HTTP/1.1)其中方法告诉服务器应完动的动作,GET方法的含义很明显是:服务器应定位、读取文件并将它返回给客户。 Web服务器软件现在就知道了,它应该找到文件/sample.html,并使用HTTP/1.1协议将内存返回给客户。信息是经过与请求到来相同的连接发出的,所以服务器不需要定们客户或创建新的连接。 (3)读取其它信息(非必须步骤)

实验13-Web服务器的配置(参考答案)

实验13 Web服务器的配置 一、实验目的 1、了解Web工作原理。 2、掌握基于IIS的Web服务器的创建和配置。 二、实验要求 1、设备要求:计算机1台(装有Windows Server 2003操作系统及活动目录、装有网卡), 集线器、交换机,UTP线(直通、交叉);Windows Server 2003安装源。 2、每组1人,独立完成。 三、实验基础 Web服务的实现采用B/W(Browser/Web Server)模式,Server信息的提供者称为Web 服务器,Browser信息的获取者称为Web客户端。Web服务器中装有Web服务器程序,如:Netscape iPlanet Web Server、Microsoft Internet Information Server、Apache等;Web 客户端装有Web客户端程序,即:Web浏览器,如:NetscapeNavigator、Microsoft Internet Explorer、Opea等。 Web服务器是如何响应Web客户端的请求呢?Web页面处理大致分3个步骤: 第一步:Web浏览器向一个特定服务器发出Web页面请求; 第二步:收到Web页面请求的Web服务器寻找所请求的页面并传送给Web浏览器; 第三步:Web浏览器接收所请求的Web页面并将其显示出来。 Web应用的基础还包括HTTP和HTML两个协议。 HTTP协议是用于从Web服务器传输超文本到本地浏览器的传输协议。它使浏览器的工作更高效,从而减轻网络负担;它不仅使计算机传输超文本正确、快速,而且可以确定传输文档的哪一部分以及哪一部分的内容首先显示等。HTTP使用一个TCP/IP连接,默认TCP80端口。 HTML 是用于创建Web文档或页面的标准语言,由一系列的标记符号或嵌入希望显示的文件代码组成,这些标记告诉浏览器应该如何显示文章和图形等内容。 四、内容与步骤 1、IIS6.0的安装、配置和测试; (1)从控制面板安装IIS; 第1步单击“开始” →“添加或删除程序” →“添加/删除Windows组件”,显示“Windows 组件向导”窗口,在“组件”列表框中依次选择“应用程序服务器” →“详细信息”,显示“应用程序服务器”窗口,选中“https://www.doczj.com/doc/aa15926512.html,”复选框以启用https://www.doczj.com/doc/aa15926512.html,功能,如图所示。

基于Java的Web服务器工作原理1

基于Java的Web服务器工作原理1基于Java的Web服务器工作原理1 一个Web服务器也被称为HTTP服务器,它通过HTTP协议与客户端通信。 这个客户端通常指的是Web浏览器。一个基于Java的Web服务器用到二个重要的类,https://www.doczj.com/doc/aa15926512.html,.Socket与https://www.doczj.com/doc/aa15926512.html,.ServerSocket,并通过HTTP消息通信。 因此,本文从讨论HTTP与这二个类开始,然后我将解释一个与本文相关的简单的Web应用。 The Hypertext Transfer Protocol(HTTP) HTTP是一种让Web服务器与浏览器(客户端)通过Internet发送与接收数 据的协议。它是一个请求、响应协议--客户端发出一个请求,服务器响应这个 请求。HTTP运用可靠的TCP连接,通常用的TCP 80端口。它的第一个版本是HTTP/0.9,然后被HTTP/1.0取代。当前的版本是HTTP/1.1,由RFC2616(.pdf)定义。 本节主要对应HTTP 1.1,足够使你充分理解由Web服务器程序发出的消息。如果你对更加详细的知识有兴趣,可以参考RFC2616。 在HTTP中,客户端总是通过建立一个连接与发送一个HTTP请求来发起一 个事务。服务器不能主动去与客户端联系,也不能给客户端发出一个回叫连接。客户端与服务器端都可以提前中断一个连接。例如,当用一个浏览器下载一个 文件时,你可以通过点击"停止"键来中断文件的下载,关闭与服务器的HTTP连接。 HTTP请求 一个HTTP请求包含三个部分: Method-URI-Protocol/Version方法-地址-版本 Request header请求头

Apache服务器配置安全规范以及其缺陷

Apache服务器配置安全规范以及其缺陷!正如我们前言所说尽管Apache服务器应用最为广泛,设计上非常安全的程序。但是同其它应用程序一样,Apache也存在安全缺陷。毕竟它是完全源代码,Apache服务器的安全缺陷主要是使用HTTP 协议进行的拒绝服务攻击(denial of service)、缓冲区溢出攻击以及被攻击者获得root权限三缺陷和最新的恶意的攻击者进行拒绝服务(DoS)攻击。合理的网络配置能够保护Apache服务器免遭多种攻击。我们来介绍一下主要的安全缺陷。主要安全缺陷(1)使用HTTP协议进行的拒绝服务攻击(denial of service)的安全缺陷这种方法攻击者会通过某些手段使服务器拒绝对HTTP应答。这样会使Apache对系统资源(CPU时间和内存)需求的剧增,最终造成Apache系统变慢甚至完全瘫痪。(2)缓冲区溢出的安全缺陷该方法攻击者利用程序编写的一些缺陷,使程序偏离正常的流程。程序使用静态分配的内存保存请求数据,攻击者就可以发送一个超长请求使缓冲区溢出。(3)被攻击者获得root权限的安全缺陷该安全缺陷主要是因为Apache服务器一般以root权限运行(父进程),攻击者会通过它获得root权限,进而控制整个Apache系统。(4)恶意的攻击者进行拒绝服务(DoS)攻击的安全缺陷这个最新在6月17日发现的漏洞,它主要是存在于Apache的chunk encoding中,这是一个HTTP协议定义的用于接受web用户所提交数据的功能。所有说使用最高和最新安全版本对于加强Apache Web服务器的安全是至关重要的。正确维护和配置Apache服务器虽然Apache服务器的开发者非常注重安全性,由于Apache服务器其庞大的项目,难免会存在安全隐患。正确维护和配置Apache WEB服务器就很重要了。我们应注意的一些问题:(1)Apache服务器配置文件Apache Web服务器主要有三个配置文件,位于 /usr/local/apache/conf目录下。这三个文件是:httpd.conf-----主配置文件srm.conf------填加资源文件access.conf---设置文件的访问权限(2)Apache服务器的目录安全认证在Apache Server中是允许使用 .htaccess做目录安全保护的,欲读取这保护的目录需要先键入正确用户帐号与密码。这样可做为专门管理网页存放的目录或做为会员区等。在保护的目录放置一个档案,档名为.htaccss。AuthName 会员专区 AuthType BasicAuthUserFile /var/tmp/xxx.pw -----把password放在网站外 require valid-user 到apache/bin目录,建password档 % ./htpasswd -c /var/tmp/xxx.pw username1 -----第一次建档要用参数-c % /htpasswd /var/tmp/xxx.pw username2 这样就可以保护目录内的内容,进入要用合法的用户。注:采用了Apache内附的模组。也可以采用在httpd.conf中加入:options indexes followsymlinks allowoverride authconfig order allow,deny allow from all (3)Apache服务器访问控制我们就要看三个配置文件中的第三个文件了,即access.conf文件,它包含一些指令控制允许什么用户访问Apache目录。应该把deny from all设为初始化指令,再使用allow from指令打开访问权限。order deny,allowdeny from allallow from https://www.doczj.com/doc/aa15926512.html, 设置允许来自某个域、IP地址或者IP段的访问。(4)Apache服务器的密码保护问题我们再使 用.htaccess文件把某个目录的访问权限赋予某个用户。系统管理员需要在httpd.conf或者rm.conf文件中使用 AccessFileName指令打开目录的访问控制。如:AuthName PrivateFilesAuthType BasicAuthUserFile /path/to/httpd/usersrequire Phoenix# htpasswd -c /path/to/httpd/users Phoenix设置Apache服务器的WEB和文件服务器我们在Apache服务器上存放WEB 服务器的文件,供用户访问,并设置/home/ftp/pub目录为文件存放区域,用

简单Web服务器设计与实现课程设计

琼州学院电子信息工程学院 课程设计报告 课程名称:计算机网络 设计题目:简单web服务器设计与实现 专业:软件工程 学生姓名:王永浩(11241056)、宋雨(11241060) 夏成鹏(11241066)、黄兵周(11241007)指导教师:陈德祥 日期: 2014年4月6日

目录 摘要 ..................................................................................................................................... - 2 -1前言 .................................................................................................................................. - 2 -1.1 课程设计前准备 ............................................................................................................ - 2 -1.2课程设计的内容........................................................................................................... - 3 -1.3课程设计要求 ............................................................................................................... - 3 - 1.4课程设计平台 ............................................................................................................... - 3 - 2 Web服务器的工作原理.................................................................................................... - 4 -2.1HTTP协议的作用原理................................................................................................. - 4 -2.2J AVA开发语言相关知识与技术 .................................................................................. - 5 -2.2.1 java中的多线程及实现: ....................................................................................... - 5 -2.2.2 I/O字节流操作...................................................................................................... - 7 -2.2. 3 网络架构: ............................................................................................................... - 9 -3开发环境及套字接编程 .................................................................................................. - 10 -3.1W EB服务器的开发环境............................................................................................. - 10 -3.2W EB服务器的套接字编程......................................................................................... - 11 - 3.2.1 ServerSocket类....................................................................................................... - 11 - 4 WEB服务器的设计与实现 ............................................................................................ - 12 -4.1W EB服务器的程序设计流程..................................................................................... - 12 -4.2用J AVA实现W EB服务器的主要设计步骤及程序................................................ - 13 -5测试运行 .......................................................................................................................... - 20 -5.1调试运行 ..................................................................................................................... - 20 -结束语 ................................................................................................................................. - 21 -参考文献 ............................................................................................................................. - 22 -

相关主题
文本预览
相关文档 最新文档