缓存服务器

HTTP头信息总结

匿名 (未验证) 提交于 2019-12-12 14:52:17
本文为多篇“HTTP请求头相关文章”及《HTTP权威指南》一书的阅读后个人汇总整理版,以便于理解。   通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。 Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET、POST、PUT、DELETE。一个URL地址用于描述一个网络上的资源,而HTTP中的GET、POST、PUT、 DELETE就对应着对这个资源的查、改、增、删4个操作,我们最常见的就是GET和POST了。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。 HTTP头信息解读   HTTP的头域包括通用头、请求头、响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。   通用头部是客户端和服务器都可以使用的头部,可以在客户端、服务器和其他应用程序之间提供一些非常有用的通用功能,如Date头部。   请求头部是请求报文特有的,它们为服务器提供了一些额外信息,比如客户端希望接收什么类型的数据,如Accept头部。   响应头部便于客户端提供信息,比如

linux性能调优总结

断了今生、忘了曾经 提交于 2019-12-12 14:42:08
系统性能一直是个热门话题。做运维这几年也一直在搞性能调优,写这个文章也算是对工作的总结。 讲调优第一步是,要讲为什么要调优?也就是系统分析,分析还需要有指标,做好性能监控的情况下,看到确实需要调优才能进行。不能为了调优而 “调优“ 那不是调优,那是破坏。 性能分析的目的 找出系统性能瓶颈 为以后的优化提供方案或者参考 达到良好利用资源的目的。硬件资源和软件配置。 影响性能的因素 想确定有哪些因素,首先确定你的应用是什么类型的? 例如: cpu密集型 例如web服务器像nginx node.js需要CPU进行批处理和数学计算都属于此类型 io密集型 例如数据库常见的mysql,大量消耗内存和存储系统,对CPU和网络要求不高,这种应用使用CPU来发起IO请求,然后进入sleep状态。 确定了应用类型就开始分析有哪些情况能影响性能: 大量的网页请求会填满运行队列、大量的上下文切换,中断 大量的磁盘些请求 网卡大量的吞吐 以及内存耗尽等。。 归结起来就是4个方面 cpu memory i/o network 系统检测的工具 我们知道了这四大块影响着我们的性能,那我们有什么工具进行检测呢? 系统调优.png-341.3kB 上图时某国外大神总结的。 我个人在工作中常用到的有: htop vmstat iotop sar strace iftop ss lsof ethtool mtr等

如何运用最新的技术提升网页速度和性能----------引用

我是研究僧i 提交于 2019-12-12 13:43:03
1. 性能设计 在我们的项目中,我们每天都会和设计师和产品负责人讨论关于平衡美观和性能的问题。对于我们自己的网站,这样做是很简单的。简言之,我们认为好的用户体验从快速的内容传输开始,也就意味着 性能 > 美观。 好的内容、布局、图片和交互是吸引用户的重要因素。这每个因素都会影响页面的加载时间和终端用户体验。每一步我们都在探讨如何在获得好的用户体验和保证设计美感的同时,最小化对性能的影响。 内容优先 我们想要把核心内容尽快地呈现给用户,意味着我们要处理好基本的 HTML 和 CSS。每个页面都应该达到基本的目的:传递信息。JS、CSS、网页字体、图片、网站分析等优化都是位居于核心内容之下的。 可控性 给理想网站定义了标准后,我们总结出:要想达到预期效果,就要能对网站各方面的控制都游刃有余。我们选择构建自己的静态站点生成器,包括资源传输,并且由我们自己操控。 静态站点生成器 我们用 Node.js 实现了静态站点生成器。它是采用带有简短 JSON 页面描述标签的 Markdown 文件来生成整个网站结构和它所有的资源。为了包括特殊的页面脚本,也可以附带一个 HTML 文件。以下是一个简单化的描述标签和 markdown 文件,用于博客的发布,用它来生成真正的 HTML。 JSON 描述标签: markdown 文件: 图片传输 平均一个 2406kb 的网页中 1535kb 是图片

Mysql安装、配置、优化

Deadly 提交于 2019-12-12 13:15:05
Mysql安装、配置、优化 一: MYSQL安装和基本配置 在linux上安装,可以用包管理工具来安装,比较简单: RedHat 系列:yum -y install mysql mysql-server Debian系列:sudo apt-get install mysql mysql-server 安装之后不知道mysql装到哪了怎么办,用whereis mysql 命令来找一下。 先找到mysql的默认配置文件。一般来说,安装后有这么几个备选的配置: 1 my-huge.cnf my-innodb-heavy-4G.cnf my-large.cnf my-medium.cnf my-small.cnf  就2014年的机器配置来说,咱们直接用my-huge.cnf。把my-huge.cnf 复制到/etc/下,改名my.cnf。配置文件就有了, 然后启动mysql: /etc/init.d/mysqld start 。 安装之后默认的帐号是root, 密码为空。咱们要做的第一件事是改root密码。 进入mysql:mysql -uroot -p 选择数据库: use mysql 改密码: UPDATE user SET Password = PASSWORD(‘xxxx’) WHERE user = ‘root’; 刷新权限: FLUSH PRIVILEGES;

强缓存和协商缓存

左心房为你撑大大i 提交于 2019-12-12 00:35:33
请求的流程 对于一次已经有缓存存在的请求来说(即之前已经发过针对这个资源的请求,在本地已经有缓存),如果发起请求,那么 首先会去找到缓存资源的响应头中的expires(过期时间)和cache-control(控制缓存的失效性)来判断当前是否直接使用缓存,如果当前时间还在expires之前,即缓存仍未失效的情况下,我们就直接使用缓存,这就是强缓存。 如果缓存已经失效,那么此时我们需要向后台发送请求,此时发送的请求并非直接就会从服务器获取资源内容,而是在请求头中,加入IF-Modified-Since(在其值后,资源是否更新)或者 IF-None-Match(比较Etag的值,相同则返回304,客户端从缓存中读取内容,否则返回200资源),这两个字段对应的值分别为第一次请求时返回的Last-Modified(上一次修改的时间)和Etag(资源的唯一标识),如果判断后资源尚未更新,就继续访问缓存资源,不会返回新的资源内容,如果已经更新,则会返回资源的实际内容,并更新header中相关的缓存字段,这就是协商缓存。 强缓存 强缓存是根据返回头中的 Expires 或者 Cache-Control 两个字段来控制的,都是表示资源的缓存有效时间。 Expires 是 http 1.0 的规范,值是一个GMT 格式的时间点字符串,比如 Expires:Mon,18 Oct 2066 23:59

Mysql安装、配置、优化

一笑奈何 提交于 2019-12-11 20:59:11
Mysq安装 一、安装Mysql5.5为例。 1、运行 mysql 安装文件;   2、按 Next,然后选择安装方式,有 "Typical(默认)"、"Complete(完全)"、"Custom(用户自定义)",选择第二个选项 "Custom",下一步, MySQL Server (mysql服务器), Developer Components (开发者部分), Debug Symbols (调试符号), Server data files (服务器数据文件) 默认;   3、改变安装路径;原路径是"C:\Program Files\MySQL\MySQL Server 5.5\",也可以修改为:"E:\Program Files\MySQL Server 5.5\"。下一步,安装,会弹出窗口,点下一步,再点下一步,选择"Launch the MySql instance Configuration Wizard",意思是启动MySQL实例配置向导,再点击Finish,再点下一步,Detailed Configuration(详细配置)和Standard Configuration(标准配置),选择详细配置,下一步;   4、选择服务器类型,"Developer Machine(开发测试类,mysql占用很少资源)"、"Server Machine(服务器类型

http协议解析

妖精的绣舞 提交于 2019-12-11 18:45:54
HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。 HTTP协议的主要特点可概括如下: 1.支持客户/服务器模式。 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 一、HTTP协议详解之URL篇 http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议

Redis面试

烂漫一生 提交于 2019-12-11 13:50:16
1、redis简介 简单来说 redis 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向。另外,redis 也经常用来做分布式锁。redis 提供了多种数据类型来支持不同的业务场景。除此之外,redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案 2、为什么要用 redis/为什么要用缓存 主要从“高性能”和“高并发”这两点来看待这个问题。 高性能: 假如用户第一次访问数据库中的某些数据。这个过程会比较慢,因为是从硬盘上读取的。将该用户访问的数据存在缓存中,这样下一次再访问这些数据的时候就可以直接从缓存中获取了。操作缓存就是直接操作内存,所以速度相当快。如果数据库中的对应数据改变的之后,同步改变缓存中相应的数据即可! 高并发: redis 和 memcached 的区别 redis支持更丰富的数据类型(支持更复杂的应用场景):Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。memcache支持简单的数据类型,String。 Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用,而Memecache把数据全部存在内存之中。 集群模式:memcached没有原生的集群模式

Redis

最后都变了- 提交于 2019-12-11 13:13:53
Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚(请允许我使用一下夸张的修辞手法)。 于是在一个寂寞难耐的夜晚,我痛定思痛,决定开始写《吊打面试官》系列,希望能帮助各位读者以后面试势如破竹,对面试官进行360°的反击,吊打问你的面试官,让一同面试的同僚瞠目结舌,疯狂收割大厂Offer! 絮叨 上一期因为是在双十一一直在熬夜的大环境下完成的,所以我自己觉得质量明显没之前的好,我这不一睡好就加班加点准备补偿大家,来点干货。(熬夜太容易感冒了,这次点个赞别白嫖了!) 顺带提一嘴,我把我准备写啥画了一个思维导图,以后总不能每篇都放个贼大的图吧,就开源到了我的GitHub,大家有兴趣可以去完善和Star。 这篇我就先放出来大家看看,感觉还是差点意思,等大家完善了。 回望过去 上一期吊打系列我们提到了Redis相关的一些知识,还没看的小伙伴可以回顾一下 《吊打面试官》系列-Redis基础 《吊打面试官》系列-缓存雪崩、击穿、穿透 《吊打面试官》系列-Redis哨兵、持久化、主从、手撕LRU 《吊打面试官》系列-Redis终章-凛冬将至、FPX-新王登基 这期我就从缓存到一些常见的问题讲一下

宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

╄→尐↘猪︶ㄣ 提交于 2019-12-11 10:35:31
一、组件简介 1)宝塔面板 宝塔面板是一款服务器管理软件,支持windows和linux系统,可以通过Web端轻松管理服务器,提升运维效率。例如:创建管理网站、FTP、数据库,拥有可视化文件管理器,可视化软件管理器,可视化CPU、内存、流量监控图表,计划任务等功能。我们在这里只用到它的LNMP/LAMP一键安装功能。 linux(centos)版: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh windows版: http://download.bt.cn/win/panel/BtSoft.zip 说明: 本文使用的服务器系统是centos7.6 ,所以只演示linux(centos)版。其他版本详情请访问宝塔面板官方网站: https://www.bt.cn/ 卸载宝塔面板的命令: wget http://download.bt.cn/install/bt-uninstall.sh && sh bt-uninstall.sh 2)Fikker Fikker 是一款跨平台(Windows/Linux)网站加速服务器软件。还同时提供强大的实时监控,防盗链,源站负载均衡,站点流量统计,URL转向(Ajax跨域/伪静态)