辛星网站架构师笔记第四篇

本节我们了解一下web服务器,要说到web服务器,恐怕还不能不提一下大名鼎鼎的Apache,这个神一样的服务器仍然占据着至少一半的市场。Apache原来用于小型或者是实验性的Internet网络,后来逐步扩展到各种系统中去,对linux的支持近乎完美。Apache可以支持SSL技术,支持多态虚拟主机。而且它是以进程为基础的结构,而进程比线程使用更多的系统资源,因此不适用于多处理器环境。

如果网站的访问量很大,那么每天的日志文件也会很大,这时候可以使用Apache自带的rotetelogs来对日志文件进行切割,切割为较小的文件,对数据分析来说还是一样的效果。后面我会写自己的教程给大家演示的,这里就不废话了。

下面重点说说Apache的几个比较重要的模块把。第一个就是压缩模块,Gzip是一种非常流行的压缩算法,而且应用十分广泛,尤其是在linux平台上,当一个纯文本用Gzip压缩的时候,可以减少百分之七十以上的文件大小。我们可以将Apache发布的网页内容通过Gzip压缩后再传输给用户浏览器,这样可以降低网络传输的字节数,最明显的好处就是加快网页加载的速度。只要服务器支持,一般建议开启Gzip压缩。在Apache上利用Gzip压缩算法进行压缩的模块有两种:mod_gzip和mod_deflate,要使用Gzip压缩,首先应该确定服务器是否开启了对那个组件的支持。我们可以通过看HTTP头来判断客户端浏览器是否接受gzip压缩,也就是看HTTP头中的Accept-Encoding这个信息,那么现在的主流浏览器都是支持gzip压缩的。而MIME类型是可以根据实际情况自行添加吧,对于pdf、图片、音乐等文件,本身已经高度压缩了,所以重复压缩的效果并不大,反而可能会因为增加了机器的负载而降低了性能。那么mod_gzip和mod_deflate有什么区别呢?区别就是mod_deflate压缩速度快,但是mod_gizp的压缩比要高。我们还可以定义mod_deflate的压缩级别,这个数值从1到9,一般来说数字越小,压缩速度越快,压缩质量相应也会低一些。

第二个就是简单的防DDOS攻击的模块,一般来说,mod_dosevasive是Apache的第三方可选模块,可以应对某些基于HTTP的拒绝服务的攻击,也就是通常所说的DDOS攻击。该模块从Apache1.3版本出现,它不能完全而彻底的防止大规模的DDOS攻击,但是对于一个一般的中小型网站来说,它还是有一定的效果的。它的原理也很简单,就是如果某一个时间段内某个IP访问的次数过快,那么就直接返回一个403错误。

第三个就是mod_limitipconn模块,它的主要目的是防止用户的多线程下载,这样很容易吃光服务器的资源,特别是对一些小网站来说,许多线程同时发送请求,会对服务器造成较大影响。我们可以通过限制下载使用的线程数,也就是限制同一个IP的并发连接数。

然后我们认识一下lighttpd吧,它是一款德国人领导的开源软件,根本目的是提供一个专门针对高性能网站的、安全、快速、兼容性好并且灵活的web服务环境。它的内开销相当的低、CPU占用率低,性能卓越,而且模块丰富,是众多开源的轻量级web服务器中较为优秀的而一款。而且单纯的看功能,它也支持FastCGI、CGI、auth、输出压缩、URL重写、alias等功能,在很多功能上lighttpd与Apache有的一拼。

下面我们来分析一下lighttpd把,单纯从性能上来说,首先考虑单进程与多进程的关系,多进程服务器比如Apache在发送一个请求的时候会唤醒所有睡眠的进程,但是最终服务的只有一个,在进程数目较多、请求频繁的时候这会造成很大的困扰,使系统不停地忙于切换进程。而lighttpd则使用单进程来响应请求,以libevent,poll()作为event  handler,如果不使用大文件支持,而且是单纯的静态文件,性能是超越Apache的。

Apache的主要缺点就是在密集并发的状态下,进程需要不断的切换,而且占用的内存相对较高,可能会使得系统的资源枯竭,而Lighttpd采用了Multiplex技术,代码经过优化之后,体积很小,资源占用率低很多,反应速度也相当的快。

如果是用Apache的重写技术,把繁重的cgi/fastcgi任务交给Lighttpd来完成,那么就会充分利用两者的优点,服务器的负载也就会下降一个数量级,反应速度也会提高一个甚至是几个数量级。

作为辛星笔记部分就写到这里吧,之后我会出一个关于服务器方面的教程的,期待您的关注奥。

时间: 2024-08-24 09:38:58

辛星网站架构师笔记第四篇的相关文章

辛星网站构架师笔记第三篇

下面大家跟着辛星来认识一下Nginx把,它是一个跨平台的服务器,但是它和传统的服务器不同的是,它不依赖于线程处理请求,它有自己的扩展性更强的驱动(异步)架构,因此它更加适合在高流量的网站.而且它还可以作为一个负载均衡器,它可以在内部直接支持Rails和PHP程序的,而且它也可以作为一个HTTP代理服务器对外进行服务.Nginx使用C语言写成. 我们上一节介绍了LVS,那么两者的区别是什么呢?第一点就是因为lvs的工作方式简单,它只是负责请求的分发,而且工作在网络的第四层,因此其负载能力强,不会产

辛星网站构架师笔记第五篇即缓存详解

前面我们介绍了缓存技术,但是对于单纯的使用缓存技术是不够的,还需要掌握一下对于提高网站的性能.减轻因为大量访问而给后台应用带来巨大压力的应用技术,也就是缓存技术. 首先说一下什么是缓存吧,缓存一般也就是成为cache,系统的缓存和硬件设备的缓存作用一样,用来暂时存放需要处理的数据,因为我们知道,从缓存读取的速度要远远高于从硬盘读取的速度,所以缓存服务器存储的数据越多,后台应用服务器的压力就越小,性能也就会越高. 而网站缓存的目的就是为了提高网站的性能,加快访问速度,合理的缓存某种类型的数据,可以

辛星网站构架师笔记第一篇

说道网站的硬构架,首先说到的就是机房的选择,然后就是宽带的大小,然后就是服务器的划分,服务器通常分为图片服务器.页面服务器.数据库服务器.应用服务器.日至服务器等等.而对于网站的软架构,首先可以有框架的选择,然后还有逻辑的分层. 对于网站优化,第一要考虑的就是html静态化,对于一个大型的网站来说,使用一套高效的CMS是很重要的,第二要考虑的就是图片服务器分离,因为图片服务器是最消耗资源的,第三个要考虑的就是数据库集群和库表散列,第四个就是缓存,首先就是软件层的缓存,比如apache的缓存模块和

辛星网站构架师笔记第二篇

LVS是基于Linux系统的服务器集群解决方案,它的目标就是创建一个具有较好的扩展性.较好的可靠性.较高的性能的一个体系,很多商业的集群产品,都是基于LVS技术来实现的. LVS的核心就是通过一组服务器来进行负载均衡,通过前端的负载调度器,把请求无缝的调度到真实的服务器上,那么这样的话客户端是感受不到的.它的伸缩性就是在集群中加入或者删除节点来实现,通过检测节点或者服务进程的故障并且正确的设置来达到系统的高可用性,由于这个负载调度是在Linux内核中完成的,因此被称之为Linux 虚拟服务器,也

寻找网站架构师!

寻找网站架构师 要求: 1,有网站程序开发经验和网站升级和维护,负责与平台相关团队的技术协调,指导其他工程师的设计开发工作:可以带领技术团队等技术管理工作: .. 2,按照产品设计要求,确定前后端及相关业务逻辑开发任务,并分配给相关开发人员, 系统架构设计,技术框架搭建,云服务器配置,网站/App数据接口设计等工作,对开发过程进行监督管理,对交付成果负责:3,参与平台产品的整体评估.设计.架构及关键模块的研发. 原文地址:http://blog.51cto.com/13984276/217906

转:大型网站架构学习笔记

前言 最近一直在拜读两本书: 1.李智慧老师的<大型网站技术架构 核心原理与案例分析> http://www.linuxidc.com/Linux/2015-11/125137.htm 2.曾宪杰老师的<大型网站系统与Java中间件实践> http://www.linuxidc.com/Linux/2015-11/125138.htm 看了并结合自己目前的工作进行了思考,感觉获益匪浅.受益良多,自己对大型网站的理解又有了不少的加深,下面分享一下自己的学习笔记. 学习笔记 1.大型网

大型网站架构学习笔记

前言 最近一直在拜读两本书: 1.李智慧老师的<大型网站技术架构 核心原理与案例分析> 2.曾宪杰老师的<大型网站系统与Java中间件实践> 看了并结合自己目前的项目进行了思考,感觉获益匪浅.受益良多,自己对大型网站的理解又有了不少的加深,下面分享一下自己的学习笔记. 学习笔记 1.大型网站架构的发展史(红字就是每一步发展历程的关键) (1)从一个小网站发展起来,一台服务器,应用程序.数据库.文件等所有资源都在一台服务器上 (2)网站业务的发展,一台服务器逐渐不能满足需求,因此要将

辛星漫谈构架师之魂

构架师是一个比较特殊的岗位,虽然也有"构架师已死"的言论,但是毫无疑问,很多公司还是有构架师这个岗位的.架构师还是蛮重要的,往往他们的高度决定了公司的技术高度,特别是中小型公司,而他们的决策也往往会直接决定了团队的开发模式和工作量的大小. 如果把职场必做战场,那么构架师就可以理解为"将军"或者"元帅",所谓"千军易得,良将难求",也有"一将无能,累死千军"的说法.构架师也是形形色色的,我们从几个角度去研究研

2015年辛星MySQL教程春季版第四本优化建模

经过了一段时间的整理,2015年的辛星MySQL教程第四本终于完工啦,它的定位是建模优化,下载地址为:点击进入下载地址 ,全书共计120页左右,所有案例都是在win7下完成的,它主要介绍的内容有建表语句.数据类型.范式与反范式.建模实践.建模经验.优化基础.索引.数据碎片等等. 在建模的这部分,可能不同的人喜欢用不同的工具,不过我之前比较喜欢用powerdesigner的,现在由于使用MySQL更多了些,于是就转向MySQL   Workbench了,可以说MySQL   Workbench确实