Ох.в общем всю логику передал. Чтобы не выносить страницы, где передаются куки, в отдельный локейшн, вместе с Set-Cookie одновременно делаем proxy_ignore_headers "Cache-Control", тогда nginx не кэширует страницу.
Все работает хорошо, но при автоматическом тестировании ловим такое: переменная кука session попадает в ключ. server { listen 192.168.0.32:9181; server_name domain.com;
access_log /var/log/nginx/domain.com/nginx-access.log combined; error_log /var/log/nginx/domain.com/nginx-error.log error;
proxy_temp_path /var/cache/nginx/domain.com; location / { proxy_pass http://192.168.0.32:81; proxy_set_header Host domain.com;
proxy_set_header X-Real-IP $remote_addr; proxy_next_upstream error timeout invalid_header http_500 http_503; proxy_cache one; proxy_cache_key $host$uri?$args|$cookie_session|$cookie_username|$cookie_username|;
proxy_no_cache $cookie_session $cookie_username $http_x_requested_with; proxy_pass_header Set-Cookie; proxy_ignore_headers "Expires"; proxy_cache_valid 200 301 302 304 1h;
} ключ в кэше получается вида: 192.168.0.32/blabla?|02e3927ebc95993e6adf59ab7072bf1c||| Вопрос: как переменная cookie_session может попадать в ключ (очень редко, но проскакивает), если она указана в параметре proxy_no_cache?
9 июня 2010 г. 15:19 пользователь Igor Sysoev <igor@xxxxxxxxx> написал:
On Wed, Jun 09, 2010 at 03:13:19PM +0300, Alex Smorodin wrote:
> Как сделать, чтобы при логине пользователь получил куку "session" от
> апача ? И чтобы потом из кэша она ни к кому не попала. Извините за
> сумбурность мыслей.
По-моему, ответ очевиден: не кэшировать страницу логина. А как же иначе ?