1.web资源防盗链

盗链概念

盗链是指在自己的页面上展示一些并不在自己服务器的内容

防盗链工作原理

通过referer或者签名,网站可以检测目标网页访问的来源页,一旦检测到来源页不是本站即进行阻止或者返回指定页面

解决方案1

Referer
nginx 模块ngx_http_referer_module用于阻挡来源非法的域名请求
location ~ .*\.(gif|jpg|png|swf|bmp|jpeg)$
{
valid_referers none blocked bobo.com
if ($invalid_referer)
{
return 403
}
}
缺点:可以进行伪装referer

解决方案2

使用第三方HttpAccessKeyModule模块实现NGINX防盗链
location ~ .*\.(gif|jpg|png|swf|bmp|jpeg)$
{
accesskey on;
accesskey_hashmethod md5;
accesskey_arg sign;
accesskey_signature "bobo$remote_addr";
}
缺点:要在每个资源后面加个签名

2.减少http请求次数

为什么要减少http请求次数

HTTPl连接产生的开销
域名解析->TCP连接->发送请求->等待->下载资源->解析时间

解决方案1

图片地图
使用

标签

解决方案2

CSS精灵
通过指定css的backgroud-image和backgroud-position来显示元素

解决方案3

合并脚本和样式表
使用外部js和css文件引用方式

解决方案4

图片使用base64编码减少页面的请求数
使用外部js和css文件引用方式

3.浏览器缓存和压缩优化技术

HTTP缓存机制

1.200 from cache: 直接从本地缓存中获取响应,最快速,最省流量,因为根本没有向服务器发送请求
2.304 not modify:协商缓存,浏览器在本地没有命中情况下请求头发送一定的校验数据到服务端,如果服务端数据没有改变浏览器从本地缓存响应,返回304,快速,发送的数据小,只返回一些基本的响应头信息,数据量很小,不发生实际响应体
3.200 OK:以上两种缓存全都失败,服务器返回完整响应,没有用到缓存,相对最慢。
NGINX配置
location ~ .*\.(gif|jpg|png|swf|bmp|jpeg)$
{
expires 30d; //缓存30天
}
前端代码和资源的压缩
js代码压缩常用工具:UglifyJs, YUI Compressor, Closure Compiler
css代码压缩常用工具:YUI Compressor, CSS Compressor
html代码压缩常用工具:htmlcompressor
图片压缩
常用工具:tinypng, JpegMini, ImageOptim
gzip压缩
location ~ .*\.(gif|jpg|png|swf|bmp|jpeg)$
{
gzip on|off //是否开启
gzip_buffers 32 4K | 16 8K //缓冲
gzip_comp_level [1-9] 推荐6 压缩级别(级别越高,压的越小,越浪费CPU资源)
gzip_disable //什么样的uri不进行gzip压缩
gzip_min_length 200 //开始压缩的最小长度
gzip_http_version //开始压缩的http协议版本
gzip_types text/plain application/xml //对哪些类型的文件用
gzip_proxied//设置请求者代理服务器,该如何缓存内容
gzip_vary on|off //是否传输gzip压缩标志
}

4.使用CDN加速

什么是CDN,全称:Content Delivery Network 内容分发网络

使用CDN的优势

5.建立独立的图片服务器

独立的必要性:

1.分担web服务器的I/O负载,将耗费资源的图片服务分离出来,提高服务器的性能和稳定性,
2.能够专门对图片服务器进行优化,为图片服务设置有针对性的缓存方案,减少带宽成本,提高访问速度,
3.提高网站可扩展性,通过增加图片服务器提高图片的吞吐能力

采用独立域名:

1.同一域名下浏览器的并发连接数有限制,突破浏览器的连接数限制(同一域名下浏览器并发连接数2-6个)
2.由于cookie的原因,对缓存不利,大部分web cache 都只能缓存不带cookie的请求,导致每次的图片请求都不能命中cache
3.如何进行图片上传和图片同步,NFS共享方式,利用FTP同步

6.动态语言层的并发处理

进程,线程,协程,同步阻塞,异步非阻塞,

php并发编程实践:swoole 消息队列 接口的并发请求(curl_multi_init)

7.数据库缓存层优化

1 为什么的要使用数据库缓存

极大地j解决数据库服务器的压力
提高应用数据的响应速度
常见的缓存形式:内存缓存,文件缓存
是为了让客户端很少,甚至不访问数据库服务器进行数据的查询,高并发下,能最大程度降低对数据库服务器的压力

2 使用redis,memcache缓存查询数据

8.MySQL数据优化

9.Web服务器的负载均衡,请求分发

php 面试考点总结-高并发和大流量解决方案考点的更多相关文章

  1. 高并发和大流量解决方案--CND加速

    CDN全称 Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定.通过在网络各处放置节点 ...

  2. PHP高并发和大流量怎么解决?

    PHP高并发和大流量的解决方案 一 高并发的概念 在互联网时代,并发,高并发通常是指并发访问.也就是在某个时间点,有多少个访问同时到来. 二 高并发架构相关概念 1.QPS (每秒查询率) : 每秒钟 ...

  3. PHP高并发和大流量的解决方案

    第一个要说的就是数据库,首先要有一个很好的架构,查询尽量不用* 避免相关子查询 给经常查询的添加索引 用排序来取代非顺序存取,如果条件允许 ,一般MySQL服务器最好安装在Linux操作系统中 .关于 ...

  4. 如何解决PHP的高并发和大流量的问题

    基础知识 TFS : 吞吐量 (吞吐量是指系统在单位时间内处理请求的数量) RT : 响应时间 (从请求发出到收到响应时间) 并发数 : 在一段时间内同时访问站点的用户数 QPS : 每秒查询率 (每 ...

  5. php高并发,大流量

    一般使用LVS+PHP集群(1000台),就算日均80亿次请求,每秒有10万并发,那分到每台机器的请求只有100个.只要你的PHP程序不是太差,100QPS总没问题吧? 而真正的瓶颈在于数据库和存储系 ...

  6. Sqlserver 高并发和大数据存储方案

    Sqlserver 高并发和大数据存储方案 随着用户的日益递增,日活和峰值的暴涨,数据库处理性能面临着巨大的挑战.下面分享下对实际10万+峰值的平台的数据库优化方案.与大家一起讨论,互相学习提高!   ...

  7. Web网站架构演变—高并发、大数据

    转 Web网站架构演变—高并发.大数据 2018年07月25日 17:27:22 gis_morningsun 阅读数:599   前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系 ...

  8. LVS解决高并发,大数据量

    http://www.360doc.com/content/14/0726/00/11962419_397102114.shtml LVS的全称Linux vitual system,是由目前阿里巴巴 ...

  9. 最全Java架构师130面试题:微服务、高并发、大数据、缓存等中间件

    一.数据结构与算法基础 · 说一下几种常见的排序算法和分别的复杂度. · 用Java写一个冒泡排序算法 · 描述一下链式存储结构. · 如何遍历一棵二叉树? · 倒排一个LinkedList. · 用 ...

随机推荐

  1. hdu 5311(暴力)

    题意:要求在一个字符串中找出三段,然后能拼成一个固定的单词,问是否可行 BC周年庆第二题,我枚举了那个单词的切断位置,然后到给的字符串里分别找,然后就没有然后了``` #include<stdi ...

  2. 【liunx】端口号的占用情况查看

    Linux如何查看端口 1.lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000 # lsof -i:8000 COMMAND PID USER ...

  3. sublime 自动添加兼容前缀插件autoprefixer

    安装插件autoprefixer步骤: 1.确保Node.js已经安装,未安装请 点击 这里>> 2.下载autoprefixer插件 https://github.com/sindres ...

  4. error MSB3073: 命令“regsvr32 /s /c:VCEnd”已退出,代码为 3

    版权声明:博客地址:blog.csdn.net/x356982611,未经同意不得转载,不得转载,不得转载 https://blog.csdn.net/x356982611/article/detai ...

  5. some ideas

    1. 3d camera h/w: 单反+projector s/w: 抓图 -> 3d成像 -> 3d显示 -->  3d编辑(?具体要那些功能)--> to 3d prin ...

  6. ORA-10997:another startup/shutdown operation of this instance in progress解决方法

    SQL> startup ORA-10997: another startup/shutdown operation of this instance inprogress ORA-09967: ...

  7. virtualbox安装增强功能并设置共享文件夹

    virtualbox安装增强功能并设置共享文件夹 我们在安装之前,必须得先安装好它所需要的依赖包,不然安装过程必定会出现错误! 一.安装依赖包 #yum install kernel-headers# ...

  8. Keepalived stable tarball

    Keepalived stable tarball Keepalived for Linux - Version 1.3.5 - March 19, 2017 Keepalived for Linux ...

  9. 在react-native中使用es7语法中的decorator装饰器

    在react-native中默认使用decorator会红屏报错,需要安装一个babel插件: babel-plugin-transform-decorators-legacy 然后在根目录下的.ba ...

  10. setting.xml配置文件 --转载

    转载出处:http://www.cnblogs.com/yakov/archive/2011/11/26/maven2_settings.html 在此,简单的说下 setting.xml 和 pom ...