浏览文章
文章信息
1、安装varnish
Ubuntu:
sudo aptitude update && sudo aptitude install varnishCentOS:
yum update && yum install varnish验证:
varnishd -V2、修改服务器软件侦听端口
原因:varnish需要侦听80端口提供高速的缓存页面数据来更快响应请求,Magento太慢,默默退居二线为Varnish提供数据。
我服务器软件的侦听端口都改成了79,退居二线默默为varnish提供支持。
apache修改httpd.conf文件的listen 80 为listen 79
3、修改默认的Varnish配置
要修改Varnish系统配置,请执行以下操作:
以具有root特权的用户身份,在文本编辑器中打开Vanish配置文件:
CentOS 6: /etc/sysconfig/varnish
CentOS 7: /etc/varnish/varnish.params
Debian: /etc/default/varnish
Ubuntu: /etc/default/varnish
找不到就直接跳过修改
sudo vim /lib/systemd/system/varnish.service将Varnish侦听端口设置为80:
VARNISH_LISTEN_PORT=80
对于Varnish 4. *,请确保DAEMON_OPTS包含该-a参数的正确侦听端口(即使VARNISH_LISTEN_PORT设置为正确的值):
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
针对Ubuntu15+
sudo vim /lib/systemd/system/varnish.service找到ExecStart修改其默认启动端口。
sudo systemctl daemon-reload
将所做的更改保存到Varnish配置文件中,然后退出文本编辑器。
4、修改
default.vcl规则
(1)本节讨论如何以最少的配置,让Varnish返回HTTP响应。这样,您可以在配置Magento使用Varnish之前验证Varnish的工作原理。
要最小化配置Varnish:
备份default.vcl:
cp /etc/varnish/default.vcl /etc/varnish/default.vcl.bak
/etc/varnish/default.vcl在文本编辑器中打开。
vim /etc/varnish/default.vcl
找到以下节:
backend default {
.host = "127.0.0.1";
.port = "80";
}
用.host完全限定的主机名或IP地址以及Varnish 后端或原始服务器的侦听端口替换的值;也就是说,提供内容Varnish的服务器将加速。
通常,以下是您的Web服务器信息在varnish中的配置。
将值替换为.port Web服务器的侦听端口(在本示例中为8080)。
示例:Apache安装在主机192.0.2.55上,Apache正在侦听端口8080:
backend default {
.host = "192.0.2.55";
.port = "8080";
}
提示:如果Varnish和Apache在同一主机上运行,建议您使用IP地址或主机名而非localhost。
将更改保存到default.vcl并退出文本编辑器。
重新启动varnish :
service varnish restart
如果Varnish无法启动,请尝试从命令行运行它,如下所示:
varnishd -d -f /etc/varnish/default.vcl
这应该显示错误消息。
(2)验证Varnish是否正常工作:
以下各节讨论如何验证Varnish是否可以正常工作,而无需配置Magento来使用它。在配置Magento之前,您应该尝试此操作。
按照显示的顺序执行以下各节中讨论的任务:
开始varnish
输入 service varnish start
如果Varnish无法作为服务启动,请按如下所示从命令行启动它:
启动Varnish CLI:
varnishd -d -f /etc/varnish/default.vcl启动Varnish子进程:
出现提示时,输入 start
显示以下消息以确认成功启动:
child (29805) Started
200 0
Child (29805) said
Child (29805) said Child starts
检测Varnish网络
netstat
登录到Varnish服务器并输入以下命令:
netstat -tulpn|grep varnishd
netstat -tulpn|grep httpd
特别查找以下输出:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 32614/varnishd
tcp 0 0 127.0.0.1:58484 0.0.0.0:* LISTEN 32604/varnishd
tcp 0 0 :::8080 :::* LISTEN 26822/httpd
tcp 0 0 ::1:48509 :::* LISTEN 32604/varnishd
上图显示了在端口80上运行的Varnish和在端口8080上运行的Apache。
如果看不到的输出varnishd,请确保Varnish正在运行。
5、配置Magento支持varnish
store->setting->configuration->advanced->system->full page cache->caching application->varnish
提示:保存后可导出配置!
varnish备份
cp /etc/varnish/default.vcl /etc/varnish/default.vcl.bak2Magento规则替换varnish规则
cp <download_directory>/default.vcl /etc/varnish/default.vcl重启varnish
systemctl daemon-reload service varnish restart验证是否全页缓存成功
rm -rf <magento_root>/var/page_cache/*检查浏览器doc的加载时间一般几毫秒,以及缓存目录是否还会生成全页缓存,如果没有生成,那么成功!