Ubuntu 安装 Varnish 非常简单 执行 sudo apt-get install varnish 命令即可自动安装 , 不过可能安装的 varnish 不是最新版本
安装成功以后 , Varnish 的配置位于 Ubuntu 的 FileStream/etc/varnish/default.vcl 文件里 。 对该文件进行编辑之前 , 需要先获取 /etc/varnish 文件夹的写权限 ,
通过执行 sudo chmod -R 777 /etc/varnish 命令设置当前登录用户 对 /etc/varnish 文件夹的写入权限 。
Varnish 有一个 "后端服务器" 的概念 , 也就是 Varnish 反向代理的真实服务器 , 通过 default.vcl 文件里的 backend default{ .host="127.0.0.1"; .port="8001" } 来配置需要反向代理的真实服务器 。
.host="127.0.0.1" 是指 varnish 安装的本机
.port="8001" 值 varnish 获得请求以后 , 间接请求 8001 端口
这是最基本的配置 , 保存以后 , 开始启动 Varnish 。
我这里登录 Ubuntu 的用户不是 root , 执行 sudo varnishd -f /etc/varnish/default.vcl -s malloc,1G -T 127.0.0.1:2000 -a 0.0.0.0:80 命令时也没有报错 , 但是访问 127.0.0.1 时 , 浏览器并没有返回 8001 端口的页面内容 , 而是报错了 , 提示服务器找不到 。
我退到 Ubuntu 的命令窗口 , 试着用 root 来执行 Varnish 的启动命令 。 Ubuntu 的 user 用户 与 root 用户的切换命令是 sudo su(switch user) , 切换到 root 后 , 再次执行
varnishd -f /etc/varnish/default.vcl -s malloc,1G -T 127.0.0.1:2000 -a 0.0.0.0:80 , 命令执行成功以后 , 访问 127.0.0.1 此时返回了 8001 端口的真实数据 , 通过火狐浏览器的FireBug 查看网络请求头信息 , 会发现在 "响应头信息" 里面 Varnish 添加了两个属性信息 (Age:3,Via:1.1 varnish), Varnish 到此就已经安装并且启动成功 。
-f /etc/varnish/default.vcl -- 指定 Varnish 需要使用的配置文件
-s malloc,1G -- 指定 Varnish 的缓存空间
-T 127.0.0.1:2000 -- varnish 有一个基于文本的管理接口 , 启动它可以在不停止 varnish 的情况下来管理 varnish 。指定管理软件监听哪个 端口
-a 0.0.0.0:80 -- 指定 Varnish 使用的端口号 , Varnish 会监听所有来自 80 端口号的数据 , 并且转发给 backend default 配置的真实服务器 。
Ubuntu 的 user 用户转root : sudo su root 用户转user: su 用户名