第一行称为请求行,GET是请求方法,表示获取资源,除此之外还有POST方法、PUT方法、HEAD方法、DELETE方法和OPTIONS方法等。由于我们写一个简单的服务器,所以暂时仅支
持GET方法。/是URI,表示客户希望访问的资源的URI。HTTP/1.1是HTTP协议的版本,此例中表示1.1版本。我们需要解析请求行,需要解析出方法字段、URI和HTTP协议版本。
第二行是Host字段,表示所请求的资源所在的主机名和端口号。
第三行User-Agent是客户的浏览器的类型,此例是运行在Ubuntu上的Firefox浏览器。
第四行Accept表示客户接受的资源的类型。
第四行Accept-Language表示客户接受的语言类型。
第五行Connection表示服务器在发送完客户请求的数据之后是否断开TCP连接。keep-alive表示不断开,close表示断开。
本章主要介绍Nginx的配置管理和使用。作为一个轻量级的HTTP服务器,Nginx与Apache相比有以下优势:在性能上,它占用很少的系统资源,能支持更多的并发连接,达到更高的访问效率:在功能上,Nginx是优秀的代理服务器和负载均衡服务器:在安装配置上,Nginx安装简单、配置灵活。下面就详细介绍Nginx的配置与使用。
相信很多读者都对Apache非常熟悉,Nginx与Apache类似,也是一款高性能的HTTP和反向代理服务器软件,还是一个IMAP/POP3/SMTP代理服务器。Nginx(发音是enginex)由俄罗斯的程序设计师Igor Sysoev开发(Igor将源代码以类BSD许可证的形式发布).可以运行在UNIX、GNU/Linux、BSD、Mac OS X、Solaris以及Microsoft Windows等操作系统中。随着Nginx在很多大型网站的广泛使用,其稳定、高效的特性逐渐被越来越多的用户认可。
Nginx与Apache的异同
Nginx和Apache一样,都是HTTP腮务器软件,在功能实现上都采用模块化结构设计,都支持通用的语言接口,如PHP、Perl、Python等,同时还支持正向和反向代理、虚拟主机、URL重写、压缩传输、SSL加密传输等。它们之间最大的差别是Apache的处理速度很慢,且占用很多内存资源,而Nginx却恰恰相反;在功能实现上,Apache的所有模块都支持动、静态编译,而Nginx模块都是静态编译的,同时,Apache对Fcgi的支持不好,而Nginx对Fcgi的支持非常好:在处理连接方式上,Nginx支持epoll.而Apache却不支持:在空间使用上,Nginx安装包仅仅只有几百K,和Nginx比起来Apache绝对是庞然大物。在了解了Nginx和Apache之间的异同点后基本上就知道了Nginx作为HTTP服务器的优势所在。
选择Nginx的优势所在
通过上面的简单介绍,可以看出,Nginx作为HTTP服务器的优势是显而易见的,它有很多其他Web服务器无法比拟的性能和优势:
口作为Web服务器,Nginx处理静态文件、索引文件,自动索引的效率非常高。
口作为代理服务器,Nginx可以实现无缓存的反向代理加速,提高网站运行速度。
口作为负载均衡服务器,Nginx既可以在内部直接支持Rails和PHP,也可以支持HTTP代理服务器对外进行服务,同时还支持简单的容错和利用算法进行负载均衡。
口在性能方面.Nginx是专门为性能优化而开发的,在实现上非常注重效率。它采用内核Poll模型,可以支持更多的并发连接,最大可以支持对50 000个并发连接数的响应,而且只占用很低的内存资源。
口在稳定性方面,Nginx采取了分阶段资源分配技术,使得CPU与内存的占用率非常低。
Nginx官方表示,Nginx保持1O OOO个没有活动的连接,而这些连接只占用2.5MB内存,因此,类似DOS这样的攻击对Nginx来说基本上是没有任何作用的。
我正在做与你同样的工作,我选择了mongoose,一款开源的http服务器。http://code.google.com/p/mongoose/
这是它的网站,可以下载源码,并且协议非常自由。
有不明白之处可以联系我。我正在基于mongoose进行开发。
=========================================
源码在这里可以下载到,http://code.google.com/p/mongoose/downloads/list
我也只是一个c程序员,不太会网络编程。但用mongoose的确非常简单,因为就是c++写的,你应该看起来不费劲。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)