1. 重庆云诚科技 > 到此一游 >

『web网站优化』web站点优化

导读辽宁北大青鸟:web网站优化可以如何实现?本文贡献者:【胤闻檉】 ,解答(web网站优化)的问题,如果问题解决,可以关注本站!最佳答案随着互联网的不断发展,越来越多的消费者都...

今天给各位分享web网站优化的知识,其中也会对web站点优化进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

辽宁北大青鸟:web网站优化可以如何实现?

本文贡献者:【胤闻檉】 ,解答(web网站优化)的问题,如果问题解决,可以关注本站!

最佳答案随着互联网的不断发展,越来越多的消费者都开始通过移动端来访问网络接收自己需要的信息。

而这些信息的传播都是需要通过移动端网页来实现的,所以,辽宁北大青鸟今天就一起来了解一下关于移动端web网页的优化方法。

WEB服务端优化有货的WEB端主要使用了nodejs,基于后端服务提供的HTTP接口服务来实现的前后端分离,这里的服务端优化主要是指在nodejs实现的web服务端进行优化。

优化的目的是提升服务端的响应和并发能力,充分发挥nodejs的异步非阻塞的特性,主要从以下几个方面去优化。

接口服务调用的优化对于一个页面展示的路由,要处理这个路由,可能需要调用多个接口并且进行进行界面逻辑的处理。

接口合并我们对于一个页面调用可以合并的接口,进行接口合并,减少接口调用次数,如:以商品详情页为例,商品的一些特性,可以在一个接口返回,尽可能的减少接口调用的个数,因为每次接口的处理都有网络IO,对象序列化,压缩和解压的过程。

接口异步调用但是并不是所有的接口都可以合并,对于无法合并的接口,我们尽量使用node的异步非阻塞的特性,进行异步调用,同时调取多个接口,而调用耗时取决于较慢的接口。

这里要说明一点:对于接口依赖,如A接口依赖B接口的返回结果,像这种情况,我们最好梳理下接口设计,减少这样的串行调用,因为这样,调用耗时是多个接口耗时的总和。

减少接口交互数据返回的数据较多的情况下,会导致JSON序列化,数据批量对象处理,产生额外的性能损耗。

可以做下接口返回数据结构的精简,返回必要的字段(页面会展示用到的数据)以及可以调整返回item个数。

从而达到减少数据的返回消息体的大小。

此外请求接口时需要gzip压缩,可以大大的减少网络传输的时间,尽管需要解压会消耗一部分CPU的时间,但是对接网络IO的损耗,还是值得的。

业务处理的优化现在我们主要的服务端业务处理,主要对于页面逻辑的处理,如路由控制,会话处理,视图对象处理,模板渲染。

我们在这些处理过程中进行了一些优化。

模板渲染的优化我们在实际使用过程中,发现模板的渲染是十分消耗性能的,特别的模板的预处理过程,如果预处理过程是在用户访问过程中去处理,会慢不止一个数量级,所以我们把预处理的过程提前了(改造了hbs),在启动web应用时,已经预编译完成。

同时我们发现handlebars的一些默认配置属性,如缩减处理,在字符串拼接过程中会损耗一定的性能,所以可以关闭html片段的缩减。

以上就是重庆云诚科技小编解答(胤闻檉)解答关于“辽宁北大青鸟:web网站优化可以如何实现?”的答案,接下来继续为你详解体育用户(生来不讨喜)分析“曲靖电脑培训学校告诉你web网站优化可以如何实现?”的一些相关解答,希望能解决你的问题!

辽宁北大青鸟:web网站优化可以如何实现?

曲靖电脑培训学校告诉你web网站优化可以如何实现?

体育爱好者提供:【生来不讨喜】 ,解答(web网站优化)的问题,如果问题解决,可以关注本站!

最佳答案随着互联网的不断发展,越来越多的消费者都开始通过移动端来访问网络接收自己需要的信息。而这些信息的传播都是需要通过移动端网页来实现的,所以,曲靖北大青鸟今天就一起来了解一下关于移动端web网页的优化方法。

WEB服务端优化

有货的WEB端主要使用了nodejs,基于后端服务提供的HTTP接口服务来实现的前后端分离,这里的服务端优化主要是指在nodejs实现的web服务端进行优化。

优化的目的是提升服务端的响应和并发能力,充分发挥nodejs的异步非阻塞的特性,主要从以下几个方面去优化。

接口服务调用的优化

对于一个页面展示的路由,要处理这个路由,可能需要调用多个接口并且进行进行界面逻辑的处理。

接口合并我们对于一个页面调用可以合并的接口,进行接口合并,减少接口调用次数,如:以商品详情页为例,商品的一些特性,可以在一个接口返回,尽可能的减少接口调用的个数,因为每次接口的处理都有网络IO,对象序列化,压缩和解压的过程。

接口异步调用但是并不是所有的接口都可以合并,对于无法合并的接口,我们尽量使用node的异步非阻塞的特性,进行异步调用,同时调取多个接口,而调用耗时取决于较慢的接口。

这里要说明一点:对于接口依赖,如A接口依赖B接口的返回结果,像这种情况,我们最好梳理下接口设计,减少这样的串行调用,因为这样,调用耗时是多个接口耗时的总和。

减少接口交互数据返回的数据较多的情况下,会导致JSON序列化,数据批量对象处理,产生额外的性能损耗。可以做下接口返回数据结构的精简,返回必要的字段(页面会展示用到的数据)以及可以调整返回item个数。从而达到减少数据的返回消息体的大小。此外请求接口时需要gzip压缩,可以大大的减少网络传输的时间,尽管需要解压会消耗一部分CPU的时间,但是对接网络IO的损耗,还是值得的。

业务处理的优化

现在我们主要的服务端业务处理,主要对于页面逻辑的处理,如路由控制,会话处理,视图对象处理,模板渲染。我们在这些处理过程中进行了一些优化。

模板渲染的优化

我们在实际使用过程中,发现模板的渲染是十分消耗性能的,特别的模板的预处理过程,如果预处理过程是在用户访问过程中去处理,会慢不止一个数量级,所以我们把预处理的过程提前了(改造了hbs),在启动web应用时,已经预编译完成。同时我们发现handlebars的一些默认配置属性,如缩减处理,在字符串拼接过程中会损耗一定的性能,所以可以关闭html片段的缩减。

以上就是重庆云诚科技小编分享贡献者:(生来不讨喜)解答的关于“曲靖电脑培训学校告诉你web网站优化可以如何实现?”的问题了,不知是否已经解决你的问题?如果没有,下一篇内容可能是你想要的答案,下面继续讲析下文用户【悲痛抬头微笑|】回答的“Web服务器性能和站点访问性能该如何优化”的一些相关疑点做出分析与解答,如果能找到你的答案,可以关注本站。

Web服务器性能和站点访问性能该如何优化

本文贡献者:【悲痛抬头微笑|】 ,解答(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培训官网。最后祝愿小伙伴们工作顺利!

今天有关内容《『web网站优化』web站点优化》先分享到这里了,如果想要了解更多,请关注www.cqycseo.com,您的关注是给小编最大的鼓励。

推荐文章:

  • 斑马旅游-斑马旅游扛不住了
  • 去湘西凤凰古城攻略 去湘西凤凰古城攻略一日游
  • 八月份适合去哪里旅游-八月份适合去哪里旅游?
  • 呼伦贝尔攻略 昆明去呼伦贝尔攻略
  • 神农架旅游景点在哪里 神农架旅游必去景点
  • 厦门江头公园是什么水 厦门江头公园一圈有多少米
  • 京西旅游-京西旅游景点
  • 大连旅游团-大连旅游团哪家好
  • 旅游吧,旅游车上的互动节目
  • 北海旅游注意事项-北海旅游注意事项及要求
  • 本文由网上采集发布,不代表我们立场,转载联系作者并注明出处:https://www.cqycseo.com/youhua/8392.html

    联系我们