随着网络的高速发展,网络性能的持续提升成为可否在芸芸App中脱颖而出的关键。高度联结的世界意味着用户对网络体验提出了更严苛的要求。假如你的网站不能作到快速响应,又或你的App存在延迟,用户很快就会移情你的竞争对手。如下为你们总结10条有关性能提高的经验,以供参考:前端
1. 采用反向代理服务器(Reverse Proxy Server)来对应用进行加速和保护web
其做用主要在如下三方面:算法
负载平衡 – 运行在反向代理服务器上的负载平衡器会在不一样的不服务器 间进行传输平衡。透过它,你能够进行无差异的服务器增添。
存静态文件 – 对于直接的文件请求,例如图片文件或代码文件,能够直接存储在反向代理服务器而后直接发送给用户,从而能够进行快速访问并为应用服务器进行减负使得程序性能获得提高。
安全保护 – 反向代理服务器能够进行高安全度配置和对威胁进行识别和监测。
2. 增添一个负载平衡器数据库
为网站增添一个负载平衡器是一个相对简单的变动,可是它能够带来不错的性能和安全性提高。负载平衡器的做用在于在不一样服务器间进行传输分发。浏览器
负载平衡器的实施前提是有一个反向代理服务器,它在接收到Internet通讯后把相关请求发送到其它服务器。平衡器的妙处在于它支持两个或以上的应用服务器,使用选择算法来分割服务器间的请求。缓存
3. 缓存静态和动态内容安全
缓存技术的使用可以使内容更快地展现给用户,其处理策略有:在需求发出时更快地处理内容,把内容存放在更快的设备上,或是使内容离用户更近。服务器
4. 数据压缩网络
压缩技术是一个巨大的潜在性能加速器。其主要做用体如今对图片,视频或音频等文件,可以进行高效的压缩处理。session
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.进行实时监控以快速解决问题和瓶颈
实施实时监控,能够全面掌握系统的运行状况,发现问题解决问题,甚至是找出形成性能瓶颈或运行缓慢的缘由。
例如可对以下的问题进行监控:
服务器宕机
链接访问丢失
服务器缓存丢失严重
服务器发送了错误的数据
学习前端的同窗们,欢迎加入前端学习交流QQ群:461593224 一块儿学习交流