Web性能优化之Apache篇

原创 2016年06月02日 12:41:00

引言

本篇为Apache服务器的性能优化笔记, 记录了优化的点滴.

HSTS策略

引言

一直以来, 实现强制https的方法是使用Apache的rewrite模块来进行重定向, 这样存在几个问题, 第一是性能问题, 第二是可能遇到不支持https的客户端…..等等

核心思想

避免这种跳转, 我们可以用HSTS策略, 就是告诉浏览器, 以后访问我这个站点, 必须用HTTPS协议来访问, 让浏览器帮忙做转换, 而不是请求到了服务器后, 才知道要转换. 只需要在响应头部加上 Strict-Transport-Security: max-age=31536000 即可.

在centos上实践:

<VirtualHost *:80>
    ServerAdmin admin@admin.com
    DocumentRoot /var/www/html
    ServerName admin.com
    ErrorLog logs/admin.log
    CustomLog logs/admin.log common
    Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
</VirtualHost>

小结

这种方法也有一定局限性: 不是所有浏览器都支持这个http头

参考资料

http://linux-audit.com/configure-hsts-http-strict-transport-security-apache-nginx/
https://raymii.org/s/tutorials/HTTP_Strict_Transport_Security_for_Apache_NGINX_and_Lighttpd.html

HTTP持久连接

引言

HTTP持久连接可以重用已建立的TCP连接,减少三次握手的RTT延迟。浏览器在请求时带上 connection: keep-alive 的头部,服务器收到后就要发送完响应后保持连接一段时间,浏览器在下一次对该服务器的请求时,就可以直接拿来用。

在centos上实践:

直接编辑httpd.conf, 设置 KeepAlive 参数为 On

小结

以往, 浏览器判断响应数据是否接收完毕, 是看连接是否关闭. 在使用持久连接后, 就不能这样了, 这就要求服务器对持久连接的响应头部一定要返回 content-length 标识body的长度, 供浏览器判断界限. 有时, content-length 的方法并不是太准确, 也可以使用 Transfer-Encoding: chunked 头部发送一串一串的数据, 最后由长度为0的chunked标识结束.

版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)

如何配置使用 HTTP 严格传输安全(HSTS)

HTTP 严格传输安全(HSTS)是一种安全功能,web 服务器通过它来告诉浏览器仅用 HTTPS 来与之通讯,而不是使用 HTTP。本文会说明如何在 Apache2、Nginx 和 Lighttpd...
  • owen5630
  • owen5630
  • 2015年10月25日 22:24
  • 3458

web性能优化之DOM篇

1. 使用createDocumentFragment,display:none,cloneNode等方法,避免浏览器多次layout 2. 使用requestAnimationFrame或者fas...
  • guobotry
  • guobotry
  • 2017年08月05日 15:59
  • 79

web性能优化之javascript篇

1. 清空数组用arr.length=0,不要用arr=[];这样相当于又创建了一个新对象赋值给arr 2. 对象使用完成后尽量置空obj=null,这样利于浏览器GC 3. 使用Canvas绘图可以...
  • guobotry
  • guobotry
  • 2017年08月05日 16:06
  • 98

web性能优化之CSS篇

1. 使用GPU缓存减少Painting 2. 使用CSS transition完成一次性动画 3. 动画过程避免布局渲染 4. CSS3动画通常是不被阻塞的,可以获得独立线程进行绘制 5. ...
  • guobotry
  • guobotry
  • 2017年08月05日 16:04
  • 63

web性能优化之规范篇

1. css置顶,js置底:原因是浏览器是从上到下渲染的 2. 图片精灵合并图片 3. chrome浏览器gzip压缩后发送 4. cache-control和expires合理设置 5. k...
  • guobotry
  • guobotry
  • 2017年08月05日 15:29
  • 61

《sed & awk》读书笔记之 sed 篇

Sed&awk笔记之sed篇:简单介绍 最近在阅读《sed & awk(第二版)》,这本书是sed和awk相关书籍中比较经典的一本。我在读书的时候有一个习惯,就是会作一些笔记,如果有条件我会放到博客中...
  • chenyulancn
  • chenyulancn
  • 2014年01月02日 15:24
  • 555

异化的追思——读《变形记》《火之鸟10复活篇》《沙耶之歌》》

  原文图文并茂,请到http://www.jsharer.com/file/738383.htm下载 异化的追思——读《变形记》《火之鸟10复活篇》《沙耶之歌》》Version 1.000三部作品的...
  • luozhuang
  • luozhuang
  • 2008年07月14日 13:21
  • 5514

初读《演说之禅设计篇》有感

零零散散看了快半个月吧,还剩几十页,今天终于把那几十页看完了,直观感受就是,看起来说得挺不错的,但是如果换我自己去做,没有参考,能做出些许满意的PPT吗?尽管带着满满的不自信,但还是找出一份大一时候做...
  • u013816144
  • u013816144
  • 2016年06月21日 21:53
  • 387

《sed & awk》读书笔记之sed篇

Sed是什么 Sed本质上是一个编辑器,但是它是非交互式的,这点与VIM不同;同时它又是面向字符流的,输入的字符流经过Sed的处理后输出。这两个特性使得Sed成为命令行下面非常有用的一个...
  • aichuanwendang
  • aichuanwendang
  • 2016年11月25日 20:25
  • 672

一步一步学ROP之linux_x86篇

0x00    本文仅解释说明蒸米大神一步一步学ROP之linux_x86篇,读者应先阅读这篇文章,遇到问题再来看我这篇文章。    阅读完这两篇文章后,我们会理解ROP(返回导向编程),DEP(堆栈...
  • jltxgcy
  • jltxgcy
  • 2016年02月19日 11:16
  • 2445
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Web性能优化之Apache篇
举报原因:
原因补充:

(最多只允许输入30个字)