要与magento一起运行的清漆设置
我正在使用magento创建一个电子商务网站 我正在使用nginx,php5 fpm 我有512mb内存和4CPU内核要与magento一起运行的清漆设置,magento,nginx,varnish,varnish-vcl,Magento,Nginx,Varnish,Varnish Vcl,我正在使用magento创建一个电子商务网站 我正在使用nginx,php5 fpm 我有512mb内存和4CPU内核 我想用这些规格的清漆。我想知道我应该在varnish配置中设置什么值,以便我的服务器能够以最小的延迟处理最大的请求?我已经尝试了一些清漆配置,但我得到的响应时间比没有清漆时要长 这是我经常使用的设置。来自magento的Varnish模块供电的页面缓存。实际上我已经 #这是由Varnish for Magento模块供电的PageCache的基本VCL配置文件。 #默认后端定义
我想用这些规格的清漆。我想知道我应该在varnish配置中设置什么值,以便我的服务器能够以最小的延迟处理最大的请求?我已经尝试了一些清漆配置,但我得到的响应时间比没有清漆时要长 这是我经常使用的设置。来自magento的Varnish模块供电的页面缓存。实际上我已经
#这是由Varnish for Magento模块供电的PageCache的基本VCL配置文件。
#默认后端定义。将此设置为指向您的content server。
后端默认值{
.host=“127.0.0.1”;
.port=“8080”;
}
#具有更长超时值的管理后端。将其设置为与默认服务器相同的IP和端口。
后端管理员{
.host=“127.0.0.1”;
.port=“8080”;
.第一个字节超时=18000s;
.between_bytes_timeout=18000s;
}
#添加Magento服务器IP以允许从后端清除
acl清除{
“本地主机”;
"127.0.0.1";
}
子vcl_recv{
如果(请求重新启动==0){
如果(请求http.x-forwarded-for){
设置req.http.X-Forwarded-For=
req.http.X-Forwarded-For“,”client.ip;
}否则{
设置req.http.X-Forwarded-For=client.ip;
}
}
如果(请求!=“获取”&&
请求!=“头”&&
请求!=“放置”&&
请求!=“发布”&&
请求!=“跟踪”&&
请求!=“选项”&&
请求!=“删除”&&
请求!=“清除”){
/*非RFC2616或连接,这很奇怪*/
回流管;
}
#清除请求
如果(请求=“清除”){
如果(!client.ip~清除){
错误405“不允许。”;
}
清除(“obj.http.X-purge-Host~”req.http.X-purge-Host“&&obj.http.X-purge-URL~”req.http.X-purge-Regex“&&obj.http.Content-Type~”req.http.X-purge-Content-Type”);
错误200“已清除。”;
}
#切换到管理后端配置
如果(req.http.cookie~“adminhtml=){
设置req.backend=admin;
}
#默认情况下,我们只处理GET和HEAD
如果(请求!=“GET”&&req.request!=“HEAD”){
返回(通行证);
}
#在领先的HTTP方案和域的情况下规范url
设置req.url=regsub(req.url,“^http[s]”?://[^/]+”,“”);
#静态文件始终可缓存。请删除SSL标志和cookie
如果(req.url~“^/(媒体| js |皮肤)/.\(png | jpg | jpeg | gif | css | js | swf | ico)$”){
unset req.http.Https;
unset req.http.Cookie;
}
#默认情况下不可缓存
if(req.http.Authorization | | req.http.Https){
返回(通行证);
}
#不要缓存来自的任何页面
#-索引文件
# - ...
if(req.url~“^/(索引)”){
返回(通行证);
}
#只要我们有一个无缓存cookie通过请求
if(req.http.cookie~“NO_CACHE=”){
返回(通行证);
}
#规范化Aceept编码头
# http://varnish.projects.linpro.no/wiki/FAQ/Compression
if(请求http接受编码){
如果(req.url~“\(jpg | png | gif | gz | tgz | bz2 | tbz | mp3 | ogg | swf | flv)$”){
#压缩这些没有意义
删除req.http.Accept-Encoding;
}elsif(req.http.Accept-Encoding~“gzip”){
设置req.http.Accept-Encoding=“gzip”;
}elsif(req.http.Accept-Encoding~“deflate”&&req.http.user-agent!~“MSIE”){
设置req.http.Accept-Encoding=“deflate”;
}否则{
#未知算法
删除req.http.Accept-Encoding;
}
}
#删除Google gclid参数
当QS=“?gclid=AAA”时,设置req.url=regsuball(req.url,\?gclid=[^&]+$,“”);#条带
当QS=“?gclid=AAA&foo=bar”时,设置req.url=regsuball(req.url,\?gclid=[^&]+&“,”?”;#条带
当QS=“?foo=bar&gclid=AAA”或QS=“?foo=bar&gclid=AAA&bar=baz”时,设置req.url=regsuball(req.url,“&gclid=[^&]+”,”);#条带
返回(查找);
}
子vcl_散列{
设置req.hash+=req.url;
if(req.http.host){
设置req.hash+=req.http.host;
}否则{
设置req.hash+=server.ip;
}
如果(!(req.url~“^/(媒体| js |皮肤)/.\(png | jpg | jpeg | gif | css | js | swf | ico)$”){
调用设计异常;
}
返回(散列);
}
子vcl_取数{
如果(beresp.status==500){
设置beresp.saintmode=10s;
重新启动;
}
设置beresp.grace=5m;
#向对象添加禁止潜伏者标记
设置beresp.http.X-Purge-URL=req.URL;
设置beresp.http.X-Purge-Host=req.http.Host;
如果(beresp.status==200 | | beresp.status==301 | | beresp.status==404){
if(beresp.http.Content-Type~“text/html”| | beresp.http.Content-Type~“text/xml”){
if((beresp.http.Set-Cookie~“NO_CACHE=)||(beresp.ttl<1s)){
设置beresp.ttl=0s;
返回(通行证);
}
#vcl_交付至重置年龄的标记:
设置beresp.http.magicmarker=“1”;
#不要缓存cookies
unset beresp.http.set-cookie;
}否则{
#设置静态内容的默认TTL值
设置beresp.ttl=4h;
}
归还(交付);
}
返回(通行证);
}
副vcl_交付{
#调试信息
if(resp.http.X-Cache-Debug){
如果(对象命中率>0){
设置resp.http.X-Cache=“HIT”;
设置resp.http.X-Cache-Hits=obj.Hits;
}否则{
设置resp.http.X-Cache=“MISS”;
}
设置resp.http.X-Cache-Expires=resp.http.Expires;
}否则{
#删除清漆/代理标头
去除相应的http.X-清漆;
删除resp.http.Via;
删除resp.http.Age;
删除resp.http.X-Purge-URL;
删除resp.http.X-Purge-Host;
}
如果(分别为http.magicmarker){
#移除魔法标记
未设置响应
# This is a basic VCL configuration file for PageCache powered by Varnish for Magento module.
# default backend definition. Set this to point to your content server.
backend default {
.host = "127.0.0.1";
.port = "8080";
}
# admin backend with longer timeout values. Set this to the same IP & port as your default server.
backend admin {
.host = "127.0.0.1";
.port = "8080";
.first_byte_timeout = 18000s;
.between_bytes_timeout = 18000s;
}
# add your Magento server IP to allow purges from the backend
acl purge {
"localhost";
"127.0.0.1";
}
sub vcl_recv {
if (req.restarts == 0) {
if (req.http.x-forwarded-for) {
set req.http.X-Forwarded-For =
req.http.X-Forwarded-For ", " client.ip;
} else {
set req.http.X-Forwarded-For = client.ip;
}
}
if (req.request != "GET" &&
req.request != "HEAD" &&
req.request != "PUT" &&
req.request != "POST" &&
req.request != "TRACE" &&
req.request != "OPTIONS" &&
req.request != "DELETE" &&
req.request != "PURGE") {
/* Non-RFC2616 or CONNECT which is weird. */
return (pipe);
}
# purge request
if (req.request == "PURGE") {
if (!client.ip ~ purge) {
error 405 "Not allowed.";
}
purge("obj.http.X-Purge-Host ~ " req.http.X-Purge-Host " && obj.http.X-Purge-URL ~ " req.http.X-Purge-Regex " && obj.http.Content-Type ~ " req.http.X-Purge-Content-Type);
error 200 "Purged.";
}
# switch to admin backend configuration
if (req.http.cookie ~ "adminhtml=") {
set req.backend = admin;
}
# we only deal with GET and HEAD by default
if (req.request != "GET" && req.request != "HEAD") {
return (pass);
}
# normalize url in case of leading HTTP scheme and domain
set req.url = regsub(req.url, "^http[s]?://[^/]+", "");
# static files are always cacheable. remove SSL flag and cookie
if (req.url ~ "^/(media|js|skin)/.*\.(png|jpg|jpeg|gif|css|js|swf|ico)$") {
unset req.http.Https;
unset req.http.Cookie;
}
# not cacheable by default
if (req.http.Authorization || req.http.Https) {
return (pass);
}
# do not cache any page from
# - index files
# - ...
if (req.url ~ "^/(index)") {
return (pass);
}
# as soon as we have a NO_CACHE cookie pass request
if (req.http.cookie ~ "NO_CACHE=") {
return (pass);
}
# normalize Aceept-Encoding header
# http://varnish.projects.linpro.no/wiki/FAQ/Compression
if (req.http.Accept-Encoding) {
if (req.url ~ "\.(jpg|png|gif|gz|tgz|bz2|tbz|mp3|ogg|swf|flv)$") {
# No point in compressing these
remove req.http.Accept-Encoding;
} elsif (req.http.Accept-Encoding ~ "gzip") {
set req.http.Accept-Encoding = "gzip";
} elsif (req.http.Accept-Encoding ~ "deflate" && req.http.user-agent !~ "MSIE") {
set req.http.Accept-Encoding = "deflate";
} else {
# unkown algorithm
remove req.http.Accept-Encoding;
}
}
# remove Google gclid parameters
set req.url = regsuball(req.url,"\?gclid=[^&]+$",""); # strips when QS = "?gclid=AAA"
set req.url = regsuball(req.url,"\?gclid=[^&]+&","?"); # strips when QS = "?gclid=AAA&foo=bar"
set req.url = regsuball(req.url,"&gclid=[^&]+",""); # strips when QS = "?foo=bar&gclid=AAA" or QS = "?foo=bar&gclid=AAA&bar=baz"
return (lookup);
}
sub vcl_hash {
set req.hash += req.url;
if (req.http.host) {
set req.hash += req.http.host;
} else {
set req.hash += server.ip;
}
if (!(req.url ~ "^/(media|js|skin)/.*\.(png|jpg|jpeg|gif|css|js|swf|ico)$")) {
call design_exception;
}
return (hash);
}
sub vcl_fetch {
if (beresp.status == 500) {
set beresp.saintmode = 10s;
restart;
}
set beresp.grace = 5m;
# add ban-lurker tags to object
set beresp.http.X-Purge-URL = req.url;
set beresp.http.X-Purge-Host = req.http.host;
if (beresp.status == 200 || beresp.status == 301 || beresp.status == 404) {
if (beresp.http.Content-Type ~ "text/html" || beresp.http.Content-Type ~ "text/xml") {
if ((beresp.http.Set-Cookie ~ "NO_CACHE=") || (beresp.ttl < 1s)) {
set beresp.ttl = 0s;
return (pass);
}
# marker for vcl_deliver to reset Age:
set beresp.http.magicmarker = "1";
# Don't cache cookies
unset beresp.http.set-cookie;
} else {
# set default TTL value for static content
set beresp.ttl = 4h;
}
return (deliver);
}
return (pass);
}
sub vcl_deliver {
# debug info
if (resp.http.X-Cache-Debug) {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
set resp.http.X-Cache-Hits = obj.hits;
} else {
set resp.http.X-Cache = "MISS";
}
set resp.http.X-Cache-Expires = resp.http.Expires;
} else {
# remove Varnish/proxy header
remove resp.http.X-Varnish;
remove resp.http.Via;
remove resp.http.Age;
remove resp.http.X-Purge-URL;
remove resp.http.X-Purge-Host;
}
if (resp.http.magicmarker) {
# Remove the magic marker
unset resp.http.magicmarker;
set resp.http.Cache-Control = "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
set resp.http.Pragma = "no-cache";
set resp.http.Expires = "Mon, 31 Mar 2008 10:00:00 GMT";
set resp.http.Age = "0";
}
}
sub design_exception {
}