linux自学笔记--memcache和varnish缓存服务器

1.memcached: kv结构,存储于内存之中,可减小数据库访问压力,也可做为session服务器使用

(1)常用命令

-u 指定用户    -m 指定内存大小

-d start|restart|stop    -p 指定端口,默认11211

-n 最小分配空间    -f 增长因子,按最小分配空间为      基数计算,默认为1.25倍

-vv 查看具体启动过程

(2)连接memcached

telnet x.x.x.x 11211

quit 退出

查看 stats items

保存 set key flags timeout size

提取 get key

追加 append key flags timeout content_size content,例:

append magedu 0 60 4 .com

加减 incr/decr key num

清空 flush_all

(3)php连接

centos7 php-pecl-memcached

(4)php session服务器

php.ini文件

session.save_handler=memcache

session.save_path="tcp://127.0.0.1:11211?persistent=1 & weight=1 & timeout=1 & retry_interval=15"

2.varnish: 可使用内存或硬盘缓存,可用于前端静态页面图片js的缓     存服务器

(1)连接varnish

varnishadm -s /etc/varnish/secret -T 127.0.0.1:6082

vcl.list 列出配置文件,avrilable可用,active已用

vcl.show confname 查看具体配置文件

vcl.use confname使用配置文件

vcl.load confname filename 加载文件成为配置文件

backend.list

storage.list 缓存类型

(2)基础配置

/etc/varnish/default.vcl

backend default {

.host="x.x.x.x" 被监听主机的ip

.port="80"

}

/etc/varnish/varnish.params

VARNISH_LISTEN_PORT=80

VARNISH_STORAGE="file,/var/lib/varnish/varnis_storage.bin"

硬盘存储,二进制文件,不要去cat,文件可能被破坏

VARNISH_STORAGE="mallc,2048" 内存存储

(3)常用变量

bereq: 有varnish向backend主机发送http请求

bereq.http.HEADERS

bereq.url

bereq.proto 协议版本

bereq.backend

beresp:

beresp.status

beresp.backend.name

beresp.http.HEADERS

beresp.ttl 除去响应时长,剩下ttl生存时长

req: 由backend向varnish主机发送http请求

req.method 4.0请求方法

req.request 3.0请求方法

obj:

obj.hits 命中次数

obj.ttl 对象ttl

server:

server.ip

server.hostname

(4)实例

不让指定页面查缓存

sub vcl_recv {

if(req.url ~"^/test.html$"){

return(pass)

}

}

给头部增加命中提示

sub vcl_deliver {

if(obj.hits>0){

set resp.http.cache="hit"+""+server.ip

}else{

set resp.http.cache="miss"+""+server.ip

}

}

清除页面缓存3.0

sub vcl_hit {

if(req.request == "PURGE"){

purge;

error 404 "not in cache";

}

}

curl -X PURGE http://magedu/test

清除页面缓存4.0

sub vcl_recv {

if(req.method == "PURGE"){

return(purage);

}

}

sub vcl_purge {

return(synth(200,"purged"))

}

curl -X PURGE http://magedu/test

(5)动静分离

backend server1 {

...

}

backend server2 {

...

}

sub vcl_recv {

if(req.url ~ "(?i)\.php$"){

set req.backend_hint=server1;

}eles{

set req.backend_hint=server2;

}

}

(6)负载均衡

import directors;

sub vcl_init {

new bar=directors.round_robin();

bar.add_backend(server1);

bar.add_backend(server2);

}

sub vcl_recv {

set req.backend_hint=bar.backend();

}

时间: 2024-10-11 07:02:36

linux自学笔记--memcache和varnish缓存服务器的相关文章

centos 7.5 部署varnish缓存服务器

博文大纲: 一.varnish简介 二.Varnish 如何工作 三.部署varnish缓存服务器 一.varnish简介 Varnish是高性能开源的反向代理服务器和HTTP缓存服务器,其功能与Squid服务器相似,都可以用来做HTTP缓存.可以安装 varnish 在任何web前端,同时配置它缓存内容.与传统的 squid 相比,varnish 具有性能更高.速度更快.管理更加方便等诸多优点.有一部分企业已经在生产环境中使用其作为旧版本的 squid的替代方案,以在相同的服务器成本下提供更好

部署varnish缓存服务器

一.简介Varnish是高性能开源的反向代理服务器和HTTP缓存服务器,其功能与Squid服务器相似,都可以用来做HTTP缓存.可以安装 varnish 在任何web前端,同时配置它缓存内容.与传统的 squid 相比,varnish 具有性能更高.速度更快.管理更加方便等诸多优点.有一部分企业已经在生产环境中使用其作为旧版本的 squid的替代方案,以在相同的服务器成本下提供更好的缓存效果,Varnish 更是作为 CDN 缓存服务器的可选服务之一. varnish的主要特性如下: ? 缓存位

nginx反代varnish缓存服务器实现后端amp动静分离架构

1.前端nginx做调度器及反代服务器,将用户的请求调度至后端的两台varnish,缓存调度算法使用一致性hash算法保证缓存命中率: 2.两台varnish反向代理用户请求至三个(组)后端主机,分别为存储静态资源(htm,html,css,js),应用程序服务器(可以部署wordpress或Discuz!),图片统一保存至图片服务器: 3.用户登录后,可以通过wordpress发布新的博文,并且可以上传图片: 4.如果后端主机全部宕机,varnish可以使用过期缓存响应客户端:        

varnish缓存服务器构建疑问

标题索引 追朔原因 实验分解 抓包分析 追朔原因 当下是互联网时代也是CDN缓存时代,缓存可以大面积减少 实验分解 当客户端浏览器cache-control:max-age=0时,表示客户端可以从缓存服务器端获取数据,但获取时必须让缓存服务器到数据服务器端进行验证: 当客户端浏览器cache-control:max-age>0时,表示客户端可以从缓存服务器端直接获取数据.

Linux学习笔记<二十六>——DNS服务器

DNS(Domain Name System 域名系统):提供Internet上域名到IP地址的映射 域名:又叫主机名,FQDN(Full Qualified Domain Name完全限定域名) 基本信息: Linux中通常使用bind服务来提供DNS服务器 应用层协议 基于UDP53端口号:用于查询 基于TCP53端口号:用于主从服务器同步数据 基于TCP953端口号:rndc用于远程控制DNS服务器 解析方式: 正向:FQDN <--> IP 反向:IP <-->FQDN 解

Linux自学笔记——haproxy

HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠地一套解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在时下的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单的安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上. HAProxy实现了一种事件驱动.单一进程模型,此模型支持非常大的并发连接数.多进程或多线程模型受内存限制.系统

Linux自学笔记——Centos启动流程

Centos启动流程大概为:POST --> Boot Sequence(BIOS)--> Boot Loader (MBR) --> Kernel(ramdisk) --> rootfs (readonly)-->switchroot --> /sbin/init -->(/etc/inittab, /etc/init/*.conf) --> 设定默认运行级别 --> 系统初始化脚本 --> 关闭或启动对应级别下的服务 --> 启动终端.

Linux自学笔记——linux文件系统

Linux的文件系统 根文件系统(rootfs),内核挂载的第一个文件系统,在启动流程的这一篇文章里有提到: LSB,FHS(Filesystem  Herirache Standard) 常用的文件系统目录:/etc,/usr,/var,/root/,/home,/dev 目录介绍:(以下截图很多是目录内容的部分截图) /boot:引导文件存放目录,内核文件(vmlinuxz).引导加载器(bootloader,grub)都存放于此目录: /bin:供所有用户使用的基本命令:不能关联至独立分区

Linux自学笔记——计算机基础以及命令帮助的获取

计算机基础知识: 计算机的主要组成部分: 运算器.控制器.存储器.输入设备.输出设备 CPU:运算器,控制器 bus:总线 memory: 编址存储设备 IO:与外部部件交互 程序的运行模式: 用户空间:user space,us 内核空间:system space POS:Portable OperationSystem POSIX API:编程接口: 运行程序格式: Windows:EXE,dll(dynamic link library) Linux:ELF,so(shared objec