July 13, 2010 02:33PM
nginx/0.7.65

Используется в качестве кеширующего прокси перед Apache c mod_php.

При наличии пользовательской куки работает апач, при её отсутствии - отдаётся кеш.
Проблема в том, что nginx периодически кладёт в кеш странички, отдаваемые [u]зарегистрированным[/u] пользователям.
Т.е. впервые зашедший на сайт человек видит надпись "Привет, username" на [b]одной/нескольких[/b] из страниц сайта.

Как можно заставить nginx кешировать для гостей только те страницы, которые и должны отдаваться гостям?

Заранее спасибо за ответ.

Основной учаток конфига:

[code]proxy_cache_path /tmp/nginx-cache levels=1:2 keys_zone=one:20m inactive=7d max_size=1024m;
proxy_temp_path /tmp/nginx-temp;

location / {
#здесь мы фильтруем наших залогиненых пользователей
if ($cookie_BITRIX_SM_AUTH) { return 412; }
if ($cookie_BITRIX_SM_UIDH) { return 412; }

#submit различных форм
if ($request_method != GET) { return 412; }

#некешируемые GET запросы
if ($request_uri ~ set_city) { return 412; }
if ($request_uri ~ personal/order/make/) { return 412; }
if ($request_uri ~ 1c_exchange/) { return 412; }
if ($request_uri ~ action=BUY) { return 412; }

#хак для тестов
if ($request_uri ~ lm_nocache) { return 412; }

#return 412;

proxy_cache one;
proxy_pass http://127.0.0.1:81;
proxy_redirect default;

proxy_ignore_headers "Cache-Control" "Expires"; # Игнорируем заголовки, относящиеся к кешированию, полученные от Apache-сервера
proxy_hide_header "Set-Cookie";
proxy_pass_header Cookie;

proxy_cache_key $cookie_BITRIX_SM_city|$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri;
proxy_cache_valid 200 301 302 304 10m;
proxy_cache_valid 503 5s;
proxy_cache_valid any 5s;
proxy_cache_use_stale http_502 http_503 http_504;

expires 1m;
add_header Cache-Control public;
}
location @backend {
proxy_pass http://127.0.0.1:81;
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
error_page 404 = /404.php;
}

error_page 412 = @backend;
[/code]
Subject Author Posted

proxy_cache по cookie

n-sw-bit July 13, 2010 02:33PM

Re: proxy_cache по cookie

paranoidchaos July 14, 2010 04:16AM

Re: proxy_cache по cookie

paranoidchaos July 14, 2010 04:19AM

Re: proxy_cache по cookie

n-sw-bit July 14, 2010 06:14AM

Re: proxy_cache по cookie

paranoidchaos July 14, 2010 07:11AM

Re: proxy_cache по cookie

n-sw-bit July 14, 2010 02:48PM

Re: proxy_cache по cookie

paranoidchaos July 15, 2010 04:15AM

Re: proxy_cache по cookie

n-sw-bit July 15, 2010 04:38AM

Re: proxy_cache по cookie

n-sw-bit July 16, 2010 03:27AM

Re: proxy_cache по cookie

n-sw-bit August 10, 2010 04:39AM

Re: proxy_cache по cookie

paranoidchaos August 10, 2010 09:18AM

Re: proxy_cache по cookie

paranoidchaos August 10, 2010 09:20AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 89
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready