主要从以下方面入手:

web资源防盗链

  • 盗链是什么? 为什么要防?

在自己页面上显示一些不是自己服务器的资源(图片、音频、视频、css、js等)
由于别人盗链你的资源会加重你的服务器负担,所以我们需要防止

  • 防盗链方法

1、Referer (易伪造referer,安全性低)
2、加密签名 (安全性高)

Referer实现

通过Referer,服务器可以检测到访问目标资源的来源网站,如果是资源文件,则可以跟踪到显示它的网页地址。一旦检测到来源网站不是本站进行阻止。
Nginx为例,前提加载ngx_http_referer_module模块

  1. //指令valid_referers 全局invalid_referer
  2. location ~* \.(gif|jpg|png|webp)$ {
  3. valid_referers none blocked domain.com *.domain.com ;
  4. if ($invalid_referer) {
  5. return 403;
  6. #rewrite ^/ http://www.domain.com/403.jpg;
  7. }
  8. }

加密签名实现

Nginx为例,前提加载第三方模块HttpAccessKeyModule实现防盗链

  1. location ~* \.(gif|jpg|png|webp)$ {
  2. accesskey on;
  3. accesskey_hashmethod md5;
  4. accesskey_arg key;
  5. accesskey_signature "mysrc$remote_addr";
  6. }

减少HTTP请求次数减少HTTP请求次数

减少JS文件数量、合并图片、图片Base64

动态页面静态化

1、使用Smarty模板引擎
2、使用ob系列函数

优化数据库

使用负载均衡

使用缓存

使用CDN加速

CDN的作用: 解决由于服务端与客户端所在区域的不同,导致影响数据传输速度和稳定性问题,一句话总结就是让数据传输更快更稳定。