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

(web优化网站性能)web服务器怎么优化性能

导读web服务器优化的方法?体育爱好者提供:【媚儿小窝】 ,解答(web优化网站性能)的问题,如果问题解决,可以关注本站!优质回答在对Web服务器进行优化时要根据真实的Web应用系统的情...

本文中提到了3个关于web优化网站性能的相关看点,同时还对web服务器怎么优化性能也有不同的看法,希望本文能为您找到想要的答案,记得关注哦!

web服务器优化的方法?

体育爱好者提供:【媚儿小窝】 ,解答(web优化网站性能)的问题,如果问题解决,可以关注本站!

优质回答在对Web服务器进行优化时要根据真实的Web应用系统的情况和特征来采取有针对性地优化方案。

1.根据不同的网络特性来看:

1.1局域网

在局域网中,降低M T U (最大传输单位)值对可以避免复制数据和要求校验,而通过优化select系统调用或在Socket事件处理器中执行计算可以优化请求并发管理,利用HTTP1.1持续连接等都可以使系统性能得到相应的改善但在广域网的环境下却没有什么大的作用,有的甚至恰恰相反。

1.2广域网

在广域网中,终端用户的请求的等待时间依赖于与网络延迟的程度,连接带宽限制情况。对于广域网,软硬中断在网络处理中占有很大的分量,所以采用适应的中断处理机制将会给服务器的响应能力带来很大的好处;将服务器定位在内核和将基于进程设计改为基于事务处理也可以不同程度的提高服务器的性能。

2.关于Web负载

除了对Web负载的特征进行分析以便在评测时更好地再现真实负载之外,还要考虑Web服务器所在的网络环境下负载的情况。人们不仅要求服务器满足正常的工作负载要求,而且在高峰时期依然要保持较高的吞吐量。但是,服务器在高负载的情况下的性能表现往往低于人们的期望。

服务器过载的情况分为两种:

2.1瞬间过载

服务器暂时的、短时间的超载,这种情况主要是由服务器负载的特点引起的。大量的研究表明,Web请求的网络通信量分布是自相似的,即Web请求的通信量可以在很大范围内有显著的变化。这就造成服务器常常短时间的超载,但这样情况持续的时间一般很短

2.2服务器长时间的超载

这种情况一般是由某一特殊事件引起的,例如服务器受到拒绝服务攻击或者发生了“活锁”现象

第一种服务器超载情况是不可避免的,但第二种情况则可以通过对服务器改进来改善。抛开恶意的攻击不算,仔细分析服务器处理信息包的过程可以发现,造成系统在超载情况下性能下降的根本原因是高优先级处理阶段对CPU的不公平抢占。

因此,如果限制高优先级处理阶段对CPU的占用率,或者限制处理高优先级的CPU个数,都可以减轻或者消除收包活锁现象。

具体的可以采用以下的方法:

2.2.1采用轮询机制

为了减少中断对系统性能的影响,在负载正常的情况下采用“下半处理” 的方法就非常有效,而在高负荷情况下,采用这个方法仍然会造成活锁现象,这时可以采用轮询机制。虽然这个方法在负载正常的情况下会造成资源的浪费和响应降低,但在网络数据频繁到达服务器时就要比中断驱动技术有效的多。

2.2.2减少上下文切换

这种方法不管服务器在什么情况下对性能改善都很有效,这时可以采用引入核心级(kerne1—leve1)或硬件级数据流的方法来达到这个目的。核心级数据流是将数据从源通过系统总线进行转发而不需要使数据经过应用程序进程,这个过程中因为数据在内存中,因此需要CPU操作数据。

硬件级数据流则是将数据从源通过私有数据总线或是虽等DMA通过系统总线进行转发而不需要使数据经过应用程序进程,这个过程不需要CPU操作数据。这样在数据传输过程中不需要用户线程的介入,减少了数据被拷贝的次数,减少了上下文切换的开销。

2.2.3减低中断的频率(主要是针对高负荷情况的方法)

这里主要有两种方法:批中断和暂时关闭中断。批中断可以在超载时有效的抑制活锁现象,但对服务器的性能没有什么根本性的改进;当系统出现接收活锁迹象时,可以采用暂时关闭中断的方法来缓和系统的负担,当系统缓存再次可用时可以再打开中断,但这种方法在接收缓存不够大的情况下会造成数据包丢失。

四.Web服务器优化总结

Web服务器性能是整个Web系统的关键环节,提高Web服务器的性能也是长久以来人们一直关注的课题。这里通过对Web服务器的工作原理和现有的优化方法和技术的分析,得出了对待Web服务器性能的提高也应该具体问题具体分析,要在具体的应用环境中,根据其特点来采取相应的优化措施。

以上就是重庆云诚科技小编解答(媚儿小窝)贡献关于“web服务器优化的方法?”的答案,接下来继续为你详解体育用户(诗酒止步)解答“Web前端工程师要掌握的Web前端性能优化方法”的一些相关解答,希望能解决你的问题!

web服务器优化的方法?

Web前端工程师要掌握的Web前端性能优化方法

本文贡献者:【诗酒止步】 ,解答(web优化网站性能)的问题,如果问题解决,可以关注本站!

优质回答今天小编要跟大家分享的文章是关于Web前端工程师要掌握的Web前端性能优化方法。正在从事Web前端工作的小伙伴们来和小编一起看一看吧,希望本篇文章能够对正在从事Web前端工作的小伙伴们有所帮助。

Web前端需要性能优化么?

性能优化一直以来都是前端工程领域中的一个重要部分。很多资料表明,网站应用的性能优化对于提高用户留存、转化率等都有积极影响。可以理解为,提升你的网站性能,就是提升你的业务数据(甚至是业务收入)。

性能优化广义上包含前端优化和后端优化。后端优化的关注点更多的时候是在增加资源利用率、降低资源成本以及提高稳定性上。相较于后端,前端的性能优化会更直接与用户的体验挂钩。从用户体验侧来说,前端服务

5s的加载时间优化缩减80%(1s)与后端服务50ms的响应优化缩减80%(10ms)

相比,用户的体验提升会更大。因此很多时候,与体验相关的性能的瓶颈会出现在前端。

我和一些同学接触的过程中,发现作为前端工程师,大家其实都具备一定的性能优化意识,同时也有自己的优化“武器库”,例如懒加载、资源合并、避免reflow

等等。虽然大家对性能优化都有自己的思路,不过大多是分散在某几个点,较难形成一个完整的体系。

一、html文档结构标签语义化

1、首先什么是语义化呢

语义化是指用合理HTML标记以及其特有的属性去格式化文档内容。机器在需要更少的人类干预的情况下能够研究和收集信息,让网页能够被机器理解,最终让人类受益。即用正确的标签做正确的事。

2、语义化的好处或者说存在的意义

①有利于搜索引擎抓取

②结构清晰的HTML在团队合作中的作用:代码可读、便于维护、提高开发效率、快速达成共识、利于二次开发。

③有利于盲人屏幕阅读器

二、css、js文件数量及大小

优化一般对于css、js是建议使用外联式来进行导入。我们可以对css、js做相应的规划也可以减少css、js的个数以减少http请求。同时也要注重减少重复代码,注重代码重复利用,以达到用最少的代码干最多的事。同时当项目要投入上线使用的时候,可以对css、js文件进行压缩,文件的减小可以加速文件的链接导入,以便加速网页的加载渲染。

可通过使用Webpack,gulp等工具对Js文件进行合并。

三、图片的数量和大小

多个服务器请求会对站点的性能产生显著的影响。对一张图片进行导入又是一个http请求,因此我们应该减少图片的导入数量以便减少http请求。此处,我们必须提到一个名词“css精灵spirit”。css精灵是指包含多个不同的图标、按钮或图形的单个图像。因此我们可以把多张背景图片合并为一张然后对背景图片进行相应的定位。同时使用PNG8格式的图片相对于GIF来说比较少。而对于内容图片,可以对其进行适当的压缩,可以加快文档内容加载,或者如果是需要用户下载的图片,小的图片可以加快用户下载的。

使用较为广泛的Web图片格式有:JPEG/JPG、PNG、WEBP、Base64、SVG。

1.JPEG/JPG

特点是有损压缩,体积小,加载快,不支持透明。

使用场景:JPG适合用于呈现热菜丰富的图片,在日常的开发中,JPG图片经常作为大的背景图、轮播图或是Banner图。比如两大电商网站对大图片的处理,就是对JPG图片应用场景的最佳写照。用JPG来呈现大图片,既可以保留图片的质量,又不会担心图片的体积,是一种比较广泛使用的方案。

缺点:在处理一些矢量图形和logo等这些线条感很强、颜色对比强烈的图片时,认为压缩就导致图片模糊非常明显。另外,JPG图像不支持透明度处理,透明图片只能用PNG来呈现了。

2.PNG-8和PNG-24

特点是无损压缩、质量高、体积大、支持透明

优点:无损压缩的高保真图片格式。8和24都是二进制数的位数,8位的PNG支持256中颜色,24位的PNG可以支持1600万种颜色。在不考虑文件大小只在乎最佳的显示效果时,推荐使用PNG-24。但是在适合使用PNG时会优先选择PNG-8

应用场景:主要用PNG来呈现小的LOGO、颜色简单对比强烈的图片或是背景。

3.SVG

特点是文本文件,体积小,不失真,兼容性好

优点:SVG是一种基于XML语法的图像格式。SVG对图像的处理不是基于像素,而是基于对图像的形状描述。

和JPG、PNG相比较,SVG文件体积更小,可压缩性更强。SVG作为矢量图最大的优点在于图片可以无限放大还不失真,一张SVG图片可以适配多种分辨率。另外SVG是文本文件,可以像写代码一样定义SVG,放在HTML中称为DOM的一部分。也可以把对图像的描述写入以.svg为后缀的文件中,在img标签中引入即可。

4.WebP

优点:WebP是一款比JPG、PNG等在压缩方面更加优越的图片格式,同时也不会影响其图片质量,使用该格式时最好将同名文件格式化,当检测浏览器不兼容时自动切换jpg格式

缺点:是一个相对较新的技术,所以对于目前市面上的浏览器能否完美的兼容,其可用和实用性就变得很现实了,再好的东西如果没有好的兼容性,也是非常难以普及和被广泛使用的

5.Base64

优点:减少请求,加快首屏数据显示。对于jpg格式的图片,每一个图片相当于一次http请求,图片多了的话,服务器耗性能比较严重。而将jpg转化成base64格式的图片,则极大地减少了请求数,因为Base是文本格式。

缺点:base64格式图片比原图大,占用更多存储空间,同时,浏览器不会对该资源缓存。

使用方法:background:url(data:image/png;base64,{img_data})

应用场景:一般对于小于10KB大小的图片进行base64转码。

至于动态图有GIF与APNG:后者APNG这东西是mozilla搞出来的,

它是24位的,而且也是动图,可以容纳1680万种颜色,也是为了取代GIF,但是也就火狐支持,IE10和chrome,safari全部不行,

如果说gif图片是卡片机的话,APNG就是单反

四、有效性验证

除了根据语义加标记之外,HTML文档还需要用有效的代码来编写,如果代码是无效的,浏览器会尝试解释标记本身,有时候会产生错误的结果。更糟的是,如果发送具有正确的MIME类型的XHTML文档,理解XML的浏览器将不显示无效的页面。因为浏览器需要知道要使用什么DTD(文档类型定义)才能正确地处理页面,所以对页面进行有效性验证要求有DOCTYPE声明。

有效性验证工具径:

W3C验证器(bookmarklet),这是一小段可以存储在浏览器的书签或收藏夹中的Javascript。单击这个书签就会触发Javascript动作。

②可以访问,通过输入自己的URL来对自己的站点来进行在线验证。

③使用firefox浏览器的可以下载插件FirefoxWebDeveloperExtension

五、雅虎的Web优化最佳实践

1、内容优化

①尽量减少HTTP请求:常见方法包括合并多个CSS文件和JavaScript文件,利用CSSSprites整合图像,Image

map(图像中不同的区域设置不同的链接),内联图象(使用data:URLscheme在实际的页面嵌入图像数据)等。

②减少DNS查找,一般dns查找需要花费20-120ms,Windows的DNS缓存,可以通过ipconfig/displaydns

这个命令来查看。

③避免重定向

④使Ajax可缓存

⑤延迟加载组件:考虑哪些内容是页面呈现时所必需首先加载的、哪些内容和结构可以稍后再加载,根据这个优先级进行设定。

预加载组件:预加载是在浏览器空闲时请求将来可能会用到的页面内容(如图像、样式表和脚本)。当用户要访问下一个页面时,页面中的内容大部分已经加载到缓存中了,因此可以大大改善访问。

⑦减少DOM元素数量:页面中存在大量DOM元素,会导致JavaScript遍历DOM的效率变慢。

⑧根据域名划分页面内容:把页面内容划分成若干部分可以使你最大限度地实现平行下载。但要确保你使用的域名数量在2个到4个之间(否则与第2条冲突)。

⑨最小化iframe的数量:iframes

提供了一个简单的方式把一个网站的内容嵌入到另一个网站中。但其创建比其他包括JavaScript和CSS的DOM元素的创建慢了1-2个数量级。

避免404:HTTP请求时间消耗是很大的,因此使用HTTP请求来获得一个没有用处的响应(例如404没有找到页面)是完全没有必要的,它只会降低用户体验而不会有一点好处。

2、服务器优化

①使用内容分发网络(CDN):把你的网站内容分散到多个、处于不同地域位置的服务器上可以加快下载。

添加Expires或Cache-Control信息头:对于静态内容,可设置文件头过期时间Expires的值为“Never

expire(永不过期)”;对于动态内容,可使用恰当的Cache-Control文件头来帮助浏览器进行有条件的请求。

②Gzip压缩

③设置ETag:ETags(Entity

tags,实体标签)是Web服务器和浏览器用于判断浏览器缓存中的内容和服务器中的原始内容是否匹配的一种机制。

提前刷新缓冲区:当用户请求一个页面时,服务器会花费200到500毫秒用于后台组织HTML文件。在这期间,浏览器会一直空闲等待数据返回。在PHP中,可以使用flush()方法,它允许你把已经编译的好的部分HTML响应文件先发送给浏览器,这时浏览器就会可以下载文件中的内容(脚本等)而后台同⑤时处理剩余的HTML页面。

对Ajax请求使用GET方法:当使用XMLHttpRequest时,浏览器中的POST方法会首先发送文件头,然后才发送数据。因此使用GET最为恰当。

⑦避免空的图像src

3、Cookie优化

①减小cookie大小:去除不必要的coockie,并使coockie体积尽量小以减少对用户响应的影响

针对Web组件使用域名无关的Cookie:对静态组件的Cookie读取是一种浪费,使用另一个无Cookie的域名来存放静态组件是一个好方法,或者也可以在Cookie中只存放带www的域名。

4、CSS优化

①将CSS代码放在HTML页面的顶部

②避免使用CSS表达式:CSS表达式在执行时候的运算量非常大,会对页面性能产生大的影响

③使用来代替@import

④避免使用Filters:IE独有属性AlphaImageLoader用于修正IE

7以下版本中PNG图片的半透明效果,但它的问题在于浏览器加载图片时它会终止内容的呈现并且冻结浏览器。

5、JavaScript优化

①将JavaScript脚本放在页面的底部

将JavaScript和CSS作为外部文件来引用:在实际应用中使用外部文件可以提高页面,因为JavaScript和CSS文件都能在浏览器中产生缓存。

③缩小JavaScript和CSS

④删除重复的脚本

⑤最小化DOM的访问:使用JavaScript访问DOM元素比较慢

⑥开发智能的事件处理程序

6、图像优化

①优化图片大小

②通过CSSSprites优化图片

③不要在HTML中使用缩放图片

④favicon.ico要小而且可缓存

7、针对移动优化

①保持组件大小在25KB以下:主要是因为iPhone不能缓存大于25K的文件(注意这里指的是解压缩后的大小)。

②将组件打包成为一个复合文档:把页面内容打包成复合文本就如同带有多附件的Email,它能够使你在一个HTTP请求中获取多个组件。

就是小编今天为大家分享的关于Web前端工程师要掌握的Web前端性能优化方法的文章,希望本篇文章能够对正在从事Web前端工作的小伙伴们有所帮,想要了解更多Web前端工作的小伙伴们记得关注北大青鸟Web培训官网最后祝愿小伙伴们工作顺利!

以上就是重庆云诚科技小编分享贡献者:(诗酒止步)贡献的关于“Web前端工程师要掌握的Web前端性能优化方法”的问题了,不知是否已经解决你的问题?如果没有,下一篇内容可能是你想要的答案,现在接着继续简述下文用户【在孤单中奋斗】解答的“高性能Web站点的优化招数”的一些相关疑问做出分析与解答,如果能找到你的答案,可以关注本站。

高性能Web站点的优化招数

本文贡献者:【在孤单中奋斗】 ,解答(web优化网站性能)的问题,如果问题解决,可以关注本站!

优质回答1.这里的吞吐率特指Web服务器单位时间内处理的请求。

2.压力测试的前提:1>并发用户数 2>总请求数 3>请求资源描述

3.用户平均请求等待时间主要用户衡量服务器在一定并发用户数的情况下,对于单个用户的服务器质量;而服务器平均请求处理时间与前者相比,则用于衡量服务器的整体服务质量,它其实就是吞吐率的倒数。

4.对http header中标记为Connection: Keep-Alive的请求,开启web服务器的长连接支持。减少系统调用accept的次数,即减少建立连接的开销。

5.老调重弹,进程,内核级线程和用户级线程在不同情况下的优劣。IO模型,mmap(内村映射),直接IO,例如sendfile syscall以及异步IO等。多路IO复用(select, poll,epoll and kqueue etc)

6.服务器并发策略

1> 一个进程处理一个连接,非阻塞IO。稳定性强,但context switch的开销随http request递增而快速增长。

2> 一个内核级线程处理一个连接,非阻塞IO,多进程多线程混合方式。Context switch的问题依然存在。理论上可以支持更多的并发连接。

3>一个进程处理多个连接,非阻塞IO。(epoll, kqueue)lighttpd, nginx。支持并发性能强劲。 上述情况的适用范围不能一刀切,而且这里都是指单机并发,需根据实际情况(实际并发数)来选择。通常,在并发用户数较大的情况下,Web服务器使用什么样的并发策略,是影响最大并发数的关键。 在实际应用中,动态内容缓存可能是使用得最多的技术,但是并不见得所有的动态内容都适合使用网页缓存,缓存带来的性能提升恰恰与有些动态数据实时交互的需求形成矛盾,这就是一个权衡。

1. 缓存动态生成的html代码。

2. 把动态内容静态化,直接缓存整个html文件。这样就可以直接访问缓存。这时的更新策略:

1>在数据更新时重新生成静态化内容 2>定时重新生成静态化内容

3. 使用SSI(server side include)进行局部静态化。但web server的SSI功能会对静态文件的吞吐率有负面影响。 减少http请求,充分利用浏览器的缓存。而webapp通过http协议(更具体位置就是http header)来与浏览器协商,那些东东浏览器可以使用其缓存即可。

1. Last-Modified/If-Modified-Since

2. ETag/If-None-Match

3.Expires + Cache-Control: max-age=<seconds>

1和2需要浏览器和webserver交互后,有服务器端通知浏览器是否使用浏览器缓存,而3则是在过期前直接使用浏览器缓存,这样就直接kill掉了http request。同时还需注意,在使用SSI的内容中,由于整个页面是服务器动态生成的,所以Last-Modified标记在不同的Web服务器中有不同的生成方法。 Web服务器隐藏在代理服务器之后。这种代理机制称为反向代理(Reverse proxy),同时,实现这种机制的服务器便成为反向代理服务器。隐藏在反向代理服务器之后的Web服务器,我们习惯称它为后端服务器(Back-end server),当然,反向代理服务器就被称为前端服务器(Front-end server)。

引入反向代理服务器的目的之一就是基于缓存的加速。我们可以将内容缓存在反向代理服务器上,所有缓存机制的实现仍然采用HTTP/1.1协议。

缓存命中率和后端吞吐率的理想技术模型

缓存丢失率=(活跃内容数/(实际吞吐率×平均缓存有效期))×100%

缓存命中率= 1-缓存丢失率 后端吞吐率= 活跃内容数/平均缓存有效期

缓存命中率= (1-(后端吞吐率/实际吞吐率))×100%

后端吞吐率 = (1 – 缓存命中率)×实际吞吐率

结论: 1. 活跃内容数和平均缓存有效期一定的情况下,缓存命中率与实际吞吐率成正比。

2. 实际吞吐率和平均缓存有效期一定的情况下,缓存命中率与活跃内容数成反比。

3. 活跃内容数和实际吞吐率一定的情况下,缓存命中率与平均缓存有效期成正比。

4. 活跃内容数一定的情况下,后端吞吐率与平均缓存有效期成反比。

5. 平均缓存有效期一定的情况下,后端吞吐率与活跃内容数成正比。

6. 缓存命中率的变化不一定会影响后端吞吐率。

7. 后端吞吐率的变化不一定会影响缓存命中率。

ESI – Edge Side Include类似与SSI,但不在webserver端组装内容,而是在http代理服务器上组装内容,包括反向代理。在处理只有局部更新动态内容时AJAX是更好的原则,它不依赖与底层webserver的实现,但ESI的优势在于再有多个后端服务器的情况下,变可以避免多个后端的重复组装,减少总工作量。 从以下几个方面来看Web组件的差异:

1. 文件大小

2. 文件数量

3. 内容更新频率

4. 预计并发用户数

5. 是否需要脚本解释器

6. 是否涉及大量CPU计算

7. 是否访问数据库

8. 访问数据库的主要操作是读还是写

9. 是否包含RPC

对每种类型的Web组件采取不同的优化方式(一种或多种):

1. 是否使用epoll模型

2. 是否使用sendfile() syscall

3. 是否使用异步IO

4. 是否支持HTTP持久连接(http keep-alive)

5. 是否需要opcode缓存

6. 是否使用动态内容缓存以及有效期为多长

7. 是否使用Web服务器缓存以及有效期为多长

8. 是否使用浏览器缓存以及有效期为多长

9. 是否使用反向代理缓存以及有效期为多长

10. 是否使用负载均衡策略

按照Web组件的不同类型将其放在不同的二级域名/机器/不同类型的WebServer

同时,还需考虑到不同的浏览器对同一个域名下的访问有多大并发数限制,而使用多个域名。

IE6,7 2(http/1.1)

IE8 6(http/1.1)

Firefox2 2(http/1.1)

Firefox3 6(http/1.1)

发挥各自的潜力

对于动态内容:开启opcode缓存,使用足够快的CPU,足够大的内存,多进程以及与数据库保持高速连接

对于静态内容:支持epoll,非阻塞IO,异步IO,使用sendfile,单进程(对于IO密集型任务,多进程无法发挥优势),使用高速磁盘,使用RAID

对于image, css and script分配合理设置其过期时间(expires) 1.合理的执行计划,包括合理使用索引

2.使用慢查询分析工具,找出执行很慢的sql并优化之。

3.合理的数据库缓存,索引缓存,数据缓存等

4.更具实际需求选择合理的数据库引擎或数据库

5.反范式化设计,对查询带来优化,但增加写和更新的工作量。

6.放弃关系型数据库,针对实际情况,读写要求极高时 数据库扩展: 读写分离,按业务实施合理的垂直分区,对热点表进行水平分区。 DNS负载均衡

需要DNS服务商提供该功能,且DNS记录存在缓存,无法及时修改,带来更新延迟。

反向代理负载均衡

HTTP重定向和DNS解析在请求的调度上体现在“转发”上,而其则体现在“转移”。

任何对于实际服务器的http请求都必须经过调度器;调度器必须等待实际服务器的http响应,并将它反馈给用户。

由于调度策略在自己手中,就可以使用诸如按照权重进行调度等策略。也可以对个应用服务器进行健康监控,对无效服务器不在把请求转移给它;还可以实现sticky sessions。

作为负载均衡调度器的反向代理服务器在扩展上的制约,反向代理服务器的处理能力制约了整个集群的处理能力,其次,容易出现单点故障

IP负载均衡

Netfilter+ IPVS

用iptables修改Netfilter规则,进行基于IP的tcp包转发,也即调度。 IPVS(IP Virtual Server)也成为LVS(Linux Virtual Server)。

两者结合的具体策略有 1. LVS + NAT

2. LVS + DR

关于[web优化网站性能]的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于web优化网站性能、web服务器怎么优化性能的信息别忘了在本站进行查找喔。

推荐文章:

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

    联系我们