ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

использование переменных $upstream* в директиве map?


  • To: nginx-ru@xxxxxxxxx
  • Subject: использование переменных $upstream* в директиве map?
  • From: "Kirill K." <nginx-forum@xxxxxxxx>
  • Date: Tue, 06 May 2014 12:29:21 -0400
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=selenium.jlkhosting.com; s=x; h=Date:Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=ysWAQZ65/yuwp1BhqYkVEdIIktopNvAbCvNOUJ0gIYM=; b=x0chiHWq7ASOhPRh5E1gMpCjbUD1t03l6si5DPpWNDH8TAifYnadTnJnX1iJDm6E22JPEc0wpWP5jAUrHoq01YZkfZtebZ/GgUz+2H1mamNFzqCAa8sG36FDYOGySErXxRxGH3w4nbpaXdV+CJEIIOo1yi5Y9CAyI6QRDRDbGlI=;

Приветствую,
Пытаюсь избежать кеширования мелких ответов от апстрима таким образом:
     map $upstream_http_content_length $dontcache {
     default 0;
     ~^\d\d$ 1;
     ~^\d$ 1;
     }

Но столкнулся с тем, что, судя по всему, nginx обрабатывает map до того, как
получает заголовки от upstream, то есть переменные типа
$upstream_http_content_length или $upstream_response_length получаются
пустыми в момент обработки map (это видно в debug-логе, по строке "http map
started"). С не-upstream переменными всё работает как задумано. 

Вопрос  ? можно ли как-то добиться обработки map уже после похода к
upstream-серверу, или надёжным ли будет решение с использованием
$body_bytes_sent в качестве индикатора размера ответа апстрима?

Спасибо.

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,249869,249869#msg-249869

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.