❶ Web服务器性能和站点访问性能该如何优化
今天小编要跟大家分享的文章是关于Web服务器性能和站点访问性能该如何优化?正在从web前端工作的小伙伴们来和小编一起看一看吧!
一、优化思路浅析
要优化Web服务器的性能,我们先来看看Web服务器在web页面处理上的步骤:
1、Web浏览器向一个特定的服务器发出Web页面请求;
2、Web服务器接收到web页面请求后,寻找所请求的web页面,并将所请求的Web页面传送给Web浏览器;
3、Web浏览器接收到所请求的web页面内容,并将它显示出来。
上面三个步骤都关系Web服务器,但实际Web服务器性能相关最大的是在第2步,这里Web服务器需要寻找来自浏览器所请求的Web
页面内容。
我们知道,Web页面内容有静态的,也有动态的,静态的内容,web
服务器可以直接将结果发回给浏览器,对于动态内容,则通常需要交给应用服务器先处理,由应用服务器返回结果。
当然,也有Web服务器本身可以处理动态内容的,例如IIS就可以自已解释处理ASP,ASP.NET这两种微软的动态网页脚本语言。
从上面简要的分析里,我们大致可以得到这样的结论,影响Web页面访问的影响因素会有这几个:
1、Web服务器从磁盘中读取静态页面内容的速度,也即时间;
2、Web服务器判定请求内容是静态还是动态内容的时间;
3、Web服务器转发请求给应用服务器的时间;
4、应用服务器处理(解释)动态内容所需的时间;
5、Web服务器返回Web内容给浏览器的响应时间;
6、Web服务器接收来自浏览器请求的处理性能;
7、Web访问请求数据在网络上传输的时间:包括从浏览器到服务器,和从服务器到浏览器两部分;
8、浏览器本地计算和渲染Web内容的时间,即接收内容后展现内容的时间。
上面8项很容易理解,也很直接,其实还有以下几项也是关乎Web
页面访问速度体验的因素,你可以思考下是否如此?或者说是否会影响到页面访问性能。
§Web服务器执行安全策略检查的时间,或者说性能;
§Web服务器读取日志文件、写日志内容、关闭对日志文件访问的时间,先读后写再关闭,这三步中的读与写又涉及到磁盘访问性能因素;
§同时与Web服务器连接会话的客户端数量大小,即并发访问量多大。
我们可以将上面的影响因素抽像出来,那么就是:
1、Web服务器磁盘性能;
2、Web服务器与应用服务器交互的性能;
3、应用服务器处理动态内容的性能,或者说动态内容应用处理性能;
4、客户端与Web服务器的连接速度,即网络传输性能;
5、Web浏览器解释和渲染Web内容的性能;
6、Web访问并发性能。
反映到我们进行性能优化,可以入手的角度就有:
1、增加带宽,包括服务器和客户端两边的Internet连接带宽;
2、加快动态内容的处理性能;
3、尽可能多地使用静态内容,这样Web服务器就可以无需请求应用服务器,直接将Web内容发给浏览器端,这里可以入手的方案又有:
动态内容缓存
动态内容静态化
多台服务器负载均衡同时处理大量的并发访问;
提升服务器磁盘访问性能,也即通常所说的I/O性能;
减少网页中的HTTP请求数;
更换更好性能的Web服务器;
合理部署服务器,在离客户端更近的地方部署服务器,已经证明可以明显地提升访问性能。
二、性能优化实践
经过前面小节的简要分析,相信你对优化Web服务器有一定的思路了,你可以从硬件层面、软件层面、Web代码三个层面去优化。
下面我们结合一个具体的实例来实践一回,本文所举例是一个小型的Web
站点,部分数据系假设,如有类同,纯属巧合,仅起抛砖引玉之用。在实际工作中,如果碰到大站点,你可以参考此处的分析,修改优化方案。
1.站点简介
一个社区论坛站点,采用Discuz!论坛程序构建,该程序采用主流的PHP+MySQL组成。
网站目前有近5万注册用户,绝大多数是国内的用户,活跃用户数在一半左右,每天平均PV在15~20万,独立访问IP数在8000
左右。
2.Web服务器性能优化需求
网站现部署在国外的服务器,租用虚拟主机来运营,因为访问量比较大,所以经常会收到虚拟主机服务商的流量很大的通知,要求控制下访问量。
另外,虚拟主机的服务器在美国,没有在国内租用虚拟主机的原因是国内网站在备案方面非常繁琐,在网站一开始运营时数据量和访问量都比较小,所以对性能要求不高,数据量小,所以服务器在查询处理数据时速度比较快,也让人感觉访问速度不慢,现在随着数据量和访问量的不断上升,访问速度已明显下降,到了需要改善访问性能的时候了。
基于目前该社区网站的情况,提出的优化需求是,国内访问速度需要提升一倍,目前首页加载时间需要40秒左右,希望优化后能在20
秒以内将首页加载完成。
另外提出网站数据能够每天自动备份一次,备份数据保留一个月的,以便随时恢复。
上述两点需求,其中第一条才是性能优化需求,第二条是额外的需求了。
3.性能优化方案
根据其网站的现状和优化需求,结合自己的经验,加上谷歌的搜索,同时与网站主不断确认沟通,最终得到以下性能优化方案:
由虚拟主机部署改为独立服务器部署
虚拟主机受限比较多,无法自己自定义配置Web服务器,无法配置PHP
动态缓存,而且独立服务器可以独享内存、处理器资源,不再受虚拟主机商对每个虚拟主机用户的内存和处理器资源占用限制。处理器资源和内存资源,对接受更多并发访问有直接性能提升效果。
独立服务器,我们选用Linode2048型号,2G内存,4核处理器(Linode所有VPS都是四核处理器),80G硬盘空间,800G
网络流量。
由Windows操作系统改为Linux操作系统
网站使用的是PHP+MySQL程序,PHP在Windows下的性能,受限于IIS需要通过ISAPI形式调用PHP,所以性能不如
Linux下Apache直接通过PHP模块解释PHP,更不如Nginx与PHP-FPM
的性能,既然使用了独立服务器,操作系统也可以自己确定,Linux系统我们选用了熟悉的UbuntuLinuxServer10.04(一年前还没有
12.04),^-^。
Web服务器采用Nginx,而不使用Apache
选用Nginx而不用Apache的原因非常直接和干脆,因为站点里有很多静态的附件文件,在处理静态内容上,Nginx性能是Apache
的差不多10倍。
在PHP解释和伪静态规则方面,Apache要比Nginx强,但这不影响我们放弃它,为缓解这一点,我们在后面对PHP
进行了动态缓存。
对PHP查询进行动态缓存,使用eAccelerator这个加速器
PHP加速器是一个为了提高PHP执行效率,从而缓存起PHP的操作码,这样PHP后面执行就不用解析转换了,可以直接调用PHP
操作码,这样速度上就提高了不少。
eAccelerator是一个开源PHP加速器,优化和动态内容缓存,提高了PHP脚本的缓存性能,使得PHP
脚本在编译的状态下,对服务器的开销几乎完全消除。它还有对脚本起优化作用,以加快其执行效率。使得的PHP程序代码执效率能提高1-10
倍,这个加速还是非常明显的。
具体地,我们计划对eAccelerator进行以下设置优化:
§缓存使用物理内存来进行,不使用磁盘来缓存。我们知道内存的读写性能是硬盘的N倍,所以在内存资源可以安排情况下,强烈建议使用内存来保存
eAccelerator的缓存内容。
§缓存大小设置为32MB,这个值是操作系统默认支持最大的缓存容量。虽然可以通过修改配置文件来加大这个值,但我们觉得没有必要,所以就放弃了。
Nginx性能优化
选用了Nginx,虽然它的性能很好,但我们仍然需要对它进行性能优化,在这个案例中,我们做了以下优化:
§使用8个进程,每个进程大约需要20M内存消耗,这里一共使用了150M左右的内存。
§充分使用主服务器的CPU内核:四核,使用CPU粘性配置选项(worker_cpu_affinity),每核处理器分配两个进程。
§开启gzip压缩功能:gzip压缩对JS,CSS,XML压缩效果非常好,能压缩一半,即减少一倍的传输时间;对图片文件,JPG
已经压缩过的,它的压缩性能要少一些。
§图片本地缓存1天:网站上的图片很多,通常一张图片上传后,不会频繁的修改,只会频繁的访问,所以将图片放在Nginx
缓存里,可以减少服务器访问加载次数,提升访问速度。
§JS、CSS文件本地缓存7
天:这两种网页文件,平时都不会去修改它,将它缓存起来,可以减少加载次数,提升访问速度。为什么这两种文件不和图片一起设置缓存有效期,是考虑了不同文件的修改频率不一样。
§Nginx日志每天切割一次:这个优化项能大大减小Nginx日志文件的大小,经过一周的查看,每天的日志文件是50M
左右,如果不是每天切割,用月切割,那一个月的日志文件就是几个G,要Web
服务器在内存里加载这么大的文件,系统本身内存不够用,就自然会用到磁盘来缓存,这就影响性能。每天50M左右,在内存上完全可以顺利加载,这样Nginx
在处理访问时,可以快速的保存访问日志。
经过上述几个优化项目,Nginx这边一共需要占用200M左右内存资源。
对PHPCGI进程性能进行优化
Nginx没有PHP模块,所以它对PHP的支持是通过PHP-FPM来实现的,PHP-FPM
是跑进程来处理并发请求,在这个案例中,我们配置了20个进程,每个进程差不多占用20M左右内存资源,一共是400M左右。
同时,PHP-FPM与Nginx交互机制,选用LinuxSocket模式而不是TCP协议端口,Socks是系统级处理模式,socks
也就是一个文件连接,而TCP协议端口,需要经过网络协议处理,性能不如前者,所以我们选择了前者。
MySQL数据库性能优化
因为网站主程序是选用他人开发的开源程序,所以对数据库查询的程序优化我们无法处理,只能从MySQL本身寻找突破口。
我们可以想象一下,对于论坛网站,通常看贴、查贴的访问量要远大于创建贴子、回复贴子的访问量,体现在MySQL
数据库上,就是读表与查询表数据的连接处理更多。
因此我们要选择对读表、查询性能更好的存储引擎,结合以前了解的知识,MySQL缺省的MyISAM
引擎就是被设计为适合处理读频率远大于写频率的环境,查询效率相当可观,而且内存占用很少,这也与我们租用低内存配置的VPS相符。
具体到MySQL配置参数的优化上,受限于服务器上内存资源本身有限,就直接采用缺省的中型环境配置文件。
内容分发网络应用
站点每天十多万的访问,上万独立IP
访问,查看先前的访问统计,访问来自国内各个地区,使用多种网络连接访问进来,为保证来自各网络的用户访问速度,同时也减少对网站服务器的请求,我们采用了CDN
来分发静态内容,这样各地的用户可以就近访问到已缓存在CDN上的文件,CDN
服务商会在静态内容第一次访问时缓存到他们全国各地的服务器上,当第二次访问时,用户实际是没有连接到网站服务器上获取文件的,而是直接从CDN
服务器上获取,可以明显的提升网站性能。
以上就是小编今天为大家分享的关于Web服务器性能和站点访问性能该如何优化的文章,希望本篇文章能够对正在从事web前端工作的小伙伴们有所帮助。想要了解更多web前端相关知识记得关注北大青鸟web培训官网。最后祝愿小伙伴们工作顺利!
❷ 静态IP在架设WEB服务器的问题
你有固定外网IP了就不用花生壳了,你直接解析你的域名到你的外网IP上就可以的,然后IIS再绑定一下,你就可以用域名访问你的网站了
❸ 常用的web服务器软件有哪些
1.IIS
IIS是英文Internet Information Server的缩写,译成中文就是"Internet信息服务"的意思。它是微软公司主推的服务器,最新的版本是Windows2008里面包含的IIS 7,IIS与Window Server完全集成在一起,因而用户能够利用Windows Server和NTFS(NT File System,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet和Intranet站点。
2.ApacheApache
ApacheApache在世界上的排名是第一的,它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSAhttpd服务器,经过多次修改,不仅简单、速度快、而且性能稳定,还可以用来做代理服务器。
3.Nginx
Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力。
4.Zeus
Zeus是一个运行于Unix下的非常优秀的Web Server,据说性能超过Apache,是效率最高的Web Server之一。
5.Sun
Sun的Java系统Web服务器也就是以前的Sun ONE Web Server。主要出现在那些运行Sun的Solaris操作系统的关键任务级Web服务器上。它最新的版本号是6.1,可以支持x86版本Solaris,Red Hat Linux,HP-UX 11i, IBM AIX,甚至可以支持Windows,但它的大多数用户都选择了SPARC版本的Solaris操作系统。
❹ IT培训分享web服务器类型介绍
web应用的运营都是基于web服务器的存在才能实现的。今天我们就一起来了解一下,目前比较常见的一些web服务器都有哪些类型。
1、Tomcat 服务器
目前非常流行的Tomcat服务器是Apache-Jarkarta开源项目中的一个子项目,是一个小型、轻量级的支持JSP和Servlet 技术的Web服务器,也是初学者学习开发JSP应用的选。
2、Resin 服务器
Resin是Caucho公司的产品,是一个非常流行的支持Servlet和JSP的服务器,速度非常快。Resin本身包含了一个支持HTML的Web服务器,这使它不仅可以显示动态内容,而且显示静态内容的能力也毫不逊色,因此许多网站都是使用Resin服务器构建
3、JBoss服务器
JBoss是一个种遵从JavaEE规范的、开放源代码的、纯Java的EJB服务器,对于J2EE有很好的支持。JBoss采用JML API实现软件模块的集成与管理,其核心服务又是提供EJB服务器,不包含Servlet和JSP的Web容器,不过它可以和Tomcat完美结合
4、WebSphere 服务器
WebSphere是IBM公司的产品,可进一步细分为 WebSphere Performance Pack、Cache Manager 和WebSphere Application Server等系列,其中WebSphere Application Server 是基于Java 的应用环境,可以运行于 Sun Solaris、Windows NT 等多种操作系统平台,用于建立、部署和管理Internet和Intranet Web应用程序。
5、WebLogic 服务器
WebLogic 是BEA公司的产品(现在已经被Oracle收购),可进一步细分为 WebLogic Server、WebLogic Enterprise 和 WebLogic Portal 等系列,其中 WebLogic Server 的功能特别强大。WebLogic 支持企业级的、多层次的和完全分布式的Web应用,并且服务器的配置简单、界面友好。IT培训http://www.kmbdqn.com/认为对于那些正在寻求能够提供Java平台所拥有的一切应用服务器的用户来说,WebLogic是一个十分理想的选择。
❺ web服务器工作原理
Step1:用户在地址栏输入一个网址,然后点击回车键;
Step2:浏览器与服务器建立TCP连接;
Step3:浏览器将用户的事件按照HTTP协议要求的格式打包成数据包,这个过程的本质就是在待发送缓冲区中有这一段HTTP协议格式的字节流;
Step4:浏览器确认服务器可写,将该数据包推入Internet中,最终,该包被递交到服务端;
Step5:服务器在接收到该数据包后,以同样的格式进行解析,获取客户端的意图;
Step6:在获取了客户端的意图之后,服务器进行分类处理,或是提供某一文件,或是处理相关数据;
Step7:将处理结果装入缓冲区,或者文档,或是其他内容;
Step8:服务器将按照HTTP协议格式,将Step7中的数据进行打包;
Step9:服务器确定对端可写,将数据包推入Internet,该包经过网络处理,最终返回至客户端;
Step10:客户端拿到包之后,以HTTP协议格式进行解包,然后解析数据;
Step11:客户端处理相关数据,并且展示在页面之上。
以上这11步,就是web服务器最基本的工作原理。通过梳理,我们不难发现,这就是一个简单的网络通信过程。换句话说,就是一个简单的发送数据、接受数据、处理数据的过程。更高级的web服务器,无非也就是将上述的三个基础内容划分得更加详细一点而已。
❻ web服务器有哪些
目前主流web服务器有三个:apache、IIS、nginx。
其中apache是开源的老牌服务器,多用于传统业务,其优点是系统稳定,扩展模块丰富,各种特性支持完整,并且跨平台。
IIS是微软主力打造的web服务器,目前作为Windows系统组件一部分,和微软上层web开发(asp.net)应用接口紧密。
nginx是开源的后起之秀,是俄罗斯开发的一款用于高并发服务的web服务器,主要应用于高并发网站、静态服务器、下载服务器等,其优点是性能更高,支持负载均衡,反向代理。
国产web服务器主要有:
Tengine:是淘宝开发团队基于nginx修改的,优化了资源请求的web服务器,其特点继承nginx,并针对资源请求做了优化。
数蚕web服务器:是数蚕科技基于c++的Linux下的web服务器,主要用于静态页面和简单的计算型服务网站。其特点是支持高并发,支持多进程,c++/c接口良好,支持直接基于C++模板开发。
❼ 静态IP如何设置才能做WEB服务器
1。下一个花生壳映射。
2。在交换机上进行NAT(地址转换)设置。
❽ 基于linux的web服务器是什么
apache、nginx都是基于linux的web服务器
可以用护卫神主机大师一键安装上,并在线开设网站