提升网站性能开发的10个技巧

news/2024/5/13 0:18:48/文章来源:https://blog.csdn.net/levi_work/article/details/49301529
摘要:随着网络的高速发展,网络性能的持续提高成为能否在芸芸App中脱颖而出的关键。高度联结的世界意味着用户对网络体验提出了更严苛的要求。文中为大家总结10条有关性能提升的经验。

随着网络的高速发展,网络性能的持续提高成为能否在芸芸App中脱颖而出的关键。高度联结的世界意味着用户对网络体验提出了更严苛的要求。假如你的网站不能做到快速响应,又或你的App存在延迟,用户很快就会移情你的竞争对手。以下为大家总结10条有关性能提升的经验,以供参考:


1.  采用反向代理服务器(Reverse Proxy Server)来对应用进行加速和保护

其作用主要在以下三方面:

  • 负载平衡 – 运行在反向代理服务器上的负载平衡器会在不同的不服务器  间进行传输平衡。透过它,你可以进行无差别的服务器增添。
  • 存静态文件 – 对于直接的文件请求,例如图片文件或代码文件,可以直接存储在反向代理服务器然后直接发送给用户,从而可以进行快速访问并为应用服务器进行减负使得程序性能得到提升。
  • 安全保护 – 反向代理服务器可以进行高安全度配置和对威胁进行识别和监测。

2.  增添一个负载平衡器

为网站增添一个负载平衡器是一个相对简单的变更,但是它可以带来不错的性能和安全性提升。负载平衡器的作用在于在不同服务器间进行传输分发。

负载平衡器的实施前提是有一个反向代理服务器,它在接收到Internet通信后把相关请求发送到其它服务器。平衡器的妙处在于它支持两个或以上的应用服务器,使用选择算法来分割服务器间的请求。

3.  缓存静态和动态内容

缓存技术的使用可使内容更快地展示给用户,其处理策略有:在需求发出时更快地处理内容,把内容存放在更快的设备上,或是使内容离用户更近。

4.  数据压缩

压缩技术是一个巨大的潜在性能加速器。其主要作用体现在对图片,视频或音频等文件,能够进行高效的压缩处理。

5.  优化SSL/TLS访问

尽管SSL/TLS变得越来越流行,但是它对于性能的影响也应得到重视。其对性能的影响主要体现在两个方面:

  • 每当新的连接开启,初始化握手都是无法避免的,即浏览器每次都需要使用HTTP/1.X建立服务器连接。
  • 存放于服务器上的加密数据会越来越大,加密后用户读取时也需要进行解码。
那么该如何进行处理呢?
  • 会话缓存—使用ssl_session_cache来直接缓存建立新SSL/TLS连接的参数
  • 会话ID化—把指定SSL/TLS的标识/ID存放起来,但要建立新连接时,就可以直接取用,从而免去重新建立通信的繁琐。
  • OCSP stapling优化—通过抓取SSL/TLS认证信息来减免建立通信的时间。

6.  部署HTTP/2或SPDY

对于已经启用SSL/TLS的网站,一旦结合HTTP/2和SPDY将能实现性能上的强强联合;因为其结果是会让单一连接的建立仅需一次通信握手。SPDY和HTTP/2的主要特性是它们使用的是单一连接而不是多方连接。

7.  定期更新软件版本

8.  优化Linux性能

例如对Linux进行以下配置或处理:

  • Backlog队列

如果你有一些将要停用的连接,可以考虑增加net.core.somaxconn。

  • 文件描述符

NGINX允许每个连接最多使用两个文件描述符。如果你的系统服务的是多个连接,你可能需要考虑增大sys.fs.file_max的值。

  • 瞬时端口

当作为一个代理使用时,NGINX会为每个upstream服务器创建临时的瞬时(ephemeral)端口。因此可以尝试加大net.ipv4.ip_local_port_range的值来增加可用端口数。

9.  优化Web服务器性能

  • 访问日志优化

在NGINX中,在access_log中加入buffer=size参数来实现日志的缓存写入;加入flush=time则可实现在某个时间间隔后进行缓存内容写入。

  • 缓存

启用缓存可使连接响应更快。

  • 客户端活动连接

活动连接可减少重连的次数,特别是启用SSL/TLS的情况下。

  • Upstream活动连接

Upstream连接指的是连接到程序服务器,数据库服务器等的连接。

  • 限制资源的访问

采取合适的策略来限制资源访问可以提高性能和安全性。

  • 进行worker处理

Worker处理模式就是请求驱动处理模式。NGINX使用了一个基于事件的模型和OS依赖机制来有效地对请求进行分发。

  • 进行socket分表

Socket分表可以为每个worker处理创建一个socket监听器,当核心委派连接分到给监听器时,可以马上知道哪个处理是即将执行的,从而使处理流程变得简洁。

  • 线程池处理

任何计算机线程都有可能由于单个缓慢的操作而挂起。对于web服务器软件来说,磁盘访问是一个性能瓶颈,例如进行数据复制等操作。当使用线程池来处理时,可以把一些响应慢的操作单独地放入某个任务组里面,从而不会对其它操作造成影响。

10.进行实时监控以快速解决问题和瓶颈

实施实时监控,可以全面掌握系统的运行情况,发现问题解决问题,甚至是找出造成性能瓶颈或运行缓慢的原因。

例如可对如下的问题进行监控:

  • 服务器宕机
  • 连接访问丢失
  • 服务器缓存丢失严重
  • 服务器发送了错误的数据
http://www.csdn.net/article/2015-10-20/2825960-web

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_877767.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《SparkStreaming 2》--UpdateStateByKey操作、spark-submit提交、网站日志案例(禁止爬虫、transform和join连接、网站的UV访问数、窗口操作PV)

UpdateStateByKey操作(按照key更新状态) 其它案例都是之前spark用到过的,以下是特殊RDD (之前案例统计的是5秒内的总次数,并不是wordcount的总次数,此Rdd可以统计整个流 流过的内容的wordcount总次数) 该updateStateByKey操作允许您在使用新信息不断更新时保持任…

js事件中的onmouseout和onmouseleave

写一个项目的过程中发现一个问题: 鼠标监听A元素的onmouseout事件,结果当鼠标移到A元素里面的B元素时,事件也触发了。 原因是因为:事件冒泡。 当鼠标从A元素进入到B元素时,A也会触发自己的onmouseout事件&#xff0…

2022百度收录方法-顺鑫说seo

今年已经是2022年头了,现在百度是一个怎样的形式呢,好多人都在吐槽,也有很多默默无闻的人。 我自认为我是一个很有想法的人。但是我不认为我是一个聪明的人。 后来的我明白,时间和实践才是检验真理的唯一标准。 我们一定要多看&am…

网站设计流程

以理论的角度: 使用NoahWeb进行网站开发,您可以将开发过程分为三个阶段:需求阶段、实现阶段、以及发布阶段。在三个阶段中,您同样可做到始终探索用户需求,多次将DEMO交付客户进行演示,网站开发中由于NoahW…

负载测试—网站的“体能”测试

通常来说,负载测试可以采用手动和自动两种方式。手动测试会遇到很多问题,如无法模拟太多用户、测试者很难精确记录相应时间、连续测试和重复测试的工作量特别大等。因此对于负载测试,手动方式通常用于初级的负载测试。目前,绝大多…

如何查看网站的端口

转:http://jingyan.baidu.com/article/4dc40848be2fd2c8d946f1a0.html 本文教您: 1,网站的域名和端口是什么含义 2,网站的端口到底有哪些 方法/步骤 1 通俗化解释什么是网站的端口,特别实用。 ---------------------------------…

ubuntu网站服务器环境搭建

转账自:ubuntu网站服务器搭建 如果想用Ubuntu作为网站的服务器,一些基本的服务是必备的。本文对环境的搭建做一个简单的整理。 Appach Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和…

WordPress 网站漏洞扫描 wpscan Kali Linux

在 WordPress 网站漏洞扫描,我将向你展示一些有用的命令 , 我们可以使用在 wpscan 搜索已知的漏洞在 wordpress 博客。 打开终端 , 使用下面的命令以启动对目标 wpscan WordPress 网站。 使用 wpscan --url blog.tld (更换 blog.tld 域与要扫描的漏洞。…

linux获取网站的响应时间

一个简易的抓包脚本 ----- url_check.sh ----- if ! [ $# -eq 1 ] then echo "Usage For example:" echo "$0 www.yy.com" exit -1 fi domain$1 echo "输入URL:"$domain echo "" echo "开始curl检测:" cu…

Git 分支 - 分支的新建与合并 分支的新建与合并 让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流。 你将经历如下步骤: 开发某个网站。 为实现某个新的需求,创

Git 分支 - 分支的新建与合并 分支的新建与合并 让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流。 你将经历如下步骤: 开发某个网站。 为实现某个新的需求,创建一个分支。 在这个分支上开展工作。 正…

怎样得到一个清爽干净简洁的CSDN文章页面?开源一个小插件,可自由定制用于其他网站。【含视频教程】

!!!想直接看视频教程的请点这里!!! 一、原版CSDN文章页面与清爽版对比 1.1 原版CSDN文章页面 原版页面分了三次截图还没截全: 1.2 清爽版CSDN文章页面 二、忍不住吐槽一下CSDN(…

360浏览器访问https网站直接跳转 se://error/ 或者se://errorpage/问题(无法打开网站,网页走丢了)解决方法

最近发现360浏览器访问某个https://网站直接跳转 se://error/ 或者se://errorpage/具体如下 用其他浏览器,例如chrome就可以正常访问那个https网站。所以问题出在浏览器这块了。经过查询资料和测试发现,这个问题的正确解决办法有两个 1、如果安装了IE8等…

iptables+shell防御网站

1.简易搭建一个web服务器 2.分析访问HTTP的日志,目录在 /var/log/httpd/access_log 3.根据网站一分钟之内的访问量来判断,限制IP过多访问,所以要设置时间变量来控制时间。先通过awk进行日志筛选出符合条件的ip,然后通过iptabl…

使用tomcat和mybatis模拟在线人数统计和网站的访问量

思路 使用一个文件来存储网站的总访问量(在这里时以键值对的形式来存储 比如count0 然后通过一个properties通过count去获取值也就是访问量),每登陆网站一次就让文件存储的时加一 用setArrtibute 方法给我们需要展示在页面的总访问量赋值 每…

如何利用客户端缓存对网站进行优化?

介绍 你的网站在并发访问很大并且无法承受压力的情况下,你会选择如何优化? 很多人首先会想从服务器缓存方面着手对程序进行优化,许多不同的服务器缓存方式都有他们自己的特点,像我曾经参与的一些项目中,根据缓存的命中率不同使用过 Com/Enterprise Libiary Caching/W…

资源全部到位但是网站渲染不了的原因

1、用nodejs写的网站所有资源都到位,但是页面不被渲染 2、在网上找了很久都没找到原因,最后发现是页面请求js、css等的type为html(即:Content-Type:text/html),导致js、css被当做html来解析&am…

nodejs网站开发随记-20140924

记录用nodejs开发的这个流程 1、项目目录 2、目录解析 public:放置js、css、图片等页面渲染的文件; routes:负责页面的调整; server:服务端流程处理及提供数据 view:放置html app.js:启动服务器

使用nat123部署内网网站允许公网访问

1.注册一个nat123账号 注册地址:http://www.nat123.com/UsersReg.jsp 2.注册之后下载客户端以及登录 客户端下载地址:http://www.nat123.com/Pages_2_32.jsp 3.客户端添加映射 4.上面完成之后发现映射提示端口不通(防火墙已放开这个端口),这是因为没有应用监听这个端口 4.…

几分钟上线一个网站,这些神器我爱了

点击“”,关注,置顶公众号 每日技术干货,第一时间送达! 1、ToolJet 简介 ToolJet 是一个开源的低代码框架,可以快速构建和部署内部工具,而无需工程团队付出太多努力。您可以连接到您的数据源,例如数据库(如 PostgreSQL、MongoDB、Elasticsearch 等)、API 端点(To…

新浪网站首页同款选项卡

新浪网站首页同款选项卡 选项卡效果选项卡的布局和 javascript 控制选项卡的html,css,javascript源码 选项卡效果 这是我自己模仿新浪网站首页中部的选项卡做的,大致的效果就是这样的 选项卡的布局和 javascript 控制 下面具体说明一下完成的过程,主…