2012-03-28 3 views
0

Я использую лак 3.0 на ubuntu 11 - перенаправление обрабатывается expressjs (v2.5.8 - running node.js 0.6) - перенаправление вызывается экспресс (работает без лака между), но когда лак используется между ними, перенаправление на новую страницу блокируется (отображается «Ошибка 302 найдена»).html перенаправления блокируются при использовании лака

В файле конфигурации vcl для лака я попытался передать (вернуть) на основе URL и Referer (в разделе sub vcl_recv), но я, похоже, неправильно сконфигурировал (или вам нужно добавить дополнительные шаги конфигурации). Любые мысли/предложения об изменениях в файле vcl были бы весьма желанными, что позволило бы лаку позволить expressjs перенаправлять на новую страницу.

Заранее спасибо.

+0

Я также пытаюсь передать (возврат) в разделе sub_vcl_fetch. Любые предложения приветствуются. –

+0

разрешено путем изменения раздела sub_vcl_fetch - я выложу здесь в ближайшее время - надеюсь, что это поможет. –

ответ

0

Исправлено изменение sub_vcl_fetch.

Я скопировал часть секции sub_vcl_fetch из моего файла VCL ниже:

югу vcl_fetch {

# Do not cache the object if the backend application does not want us to. 
if (beresp.http.Cache-Control ~ "(no-cache|no-store|private|must-revalidate)") { 
return(pass); 
} 

# Do not cache the object if the status is not in the 200s 
if (beresp.status >= 300) { 
# Remove the Set-Cookie header 
#remove beresp.http.Set-Cookie; 
return(pass); 
} 

# 
# Everything below here should be cached 
# 
# Remove the Set-Cookie header 
####remove beresp.http.Set-Cookie; 

# Set the grace time 
set beresp.grace = 1s; 

# Static assets aren't served out of Varnish just yet, but when they are, this will 
# make sure the browser caches them for a long time. 
if (req.url ~ "\.(css|js|jpg|jpeg|gif|ico|png)\??\d*$") { 
/* Remove Expires from backend, it's not long enough */ 
unset beresp.http.expires; 

/* Set the clients TTL on this object */ 
set beresp.http.cache-control = "public, max-age=31536000"; 

/* marker for vcl_deliver to reset Age: */ 
set beresp.http.magicmarker = "1";} else { 
set beresp.http.Cache-Control = "private, max-age=0, must-revalidate"; 
set beresp.http.Pragma = "no-cache";} 

## If the request to the backend returns a code other than 200, restart the loop 
## If the number of restarts reaches the value of the parameter max_restarts, 
## the request will be error'ed. max_restarts defaults to 4. This prevents 
## an eternal loop in the event that, e.g., the object does not exist at all. 
if (beresp.status != 200 && beresp.status != 403 && beresp.status != 404) { 
restart; 
} 


if (beresp.status == 302) { 
return(deliver);} 
# return(deliver); the object 
return(deliver); 
} 

Надеется, что это помогает!

Смежные вопросы