﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	uname	nginx_version
45	Некорректная обработка директив конфига	www.google.com/accounts/o8/id?id=AItOawlwT8QHCr6aIRPa7TBcWiTsPv_AUE1MzkM	Maxim Dounin	"Если в конфиге несколько вирт. хостов, и хотя бы для одного из них включено кэширование (директивой proxy_cache), то при проксировании запросов заголовки, управляющие кэшированием (If-Modified-Since, If-None-Match), не передаются бэкэнду для других хостов (может быть, и локэйшн тоже) даже если те не должны кэшироваться nginx. Попытка ручной установки заголовков приводит к 404 ошибке.

Пример, на котором баг вопроизводится (опускаю не относящиеся к теме настройки):

{{{
http {
	proxy_set_header		Host				$host;
	proxy_set_header		X-Real-IP			$remote_addr;
	proxy_set_header		X-Forwarded-For 	$proxy_add_x_forwarded_for;
	proxy_cache_path		/opt/local/var/run/nginx/cache/images levels=1 keys_zone=images:1h max_size=1m;

	server {
		location / {
			proxy_pass		http://apache;
			proxy_cache 		images;
			proxy_cache_valid 	200 301 302 304 1h;
			proxy_hide_header 	""Set-Cookie"";
			proxy_ignore_headers ""Cache-Control"" ""Expires"";
		}
	}
	server {
		location ~* \.jpg$ {
			proxy_pass		http://apache;
			#backend will never get if-modified-since headers
		}
	}
}
}}}"	defect	closed	minor		other	0.8.x	fixed	proxy_cache cache if-modified-since if-none-match last-modified etag		Darwin amIMac.local 10.5.0 Darwin Kernel Version 10.5.0: Fri Nov  5 23:19:13 PDT 2010; root:xnu-1504.9.17~1/RELEASE_X86_64 x86_64	configure arguments: --prefix=/opt/local --with-cc-opt='-I/opt/local/include -O2' --with-ld-opt=-L/opt/local/lib --conf-path=/opt/local/etc/nginx/nginx.conf --error-log-path=/opt/local/var/log/nginx/error.log --http-log-path=/opt/local/var/log/nginx/access.log --pid-path=/opt/local/var/run/nginx/nginx.pid --lock-path=/opt/local/var/run/nginx/nginx.lock --http-client-body-temp-path=/opt/local/var/run/nginx/client_body_temp --http-proxy-temp-path=/opt/local/var/run/nginx/proxy_temp --http-fastcgi-temp-path=/opt/local/var/run/nginx/fastcgi_temp --http-uwsgi-temp-path=/opt/local/var/run/nginx/uwsgi_temp
