Re: Кэширование статики, которую генерирует бэкэнд
Вопрос, как кэшировать ответы от бэкэнда (статику), чтобы это не препятствовало основному проксированию ответа http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache Posted at Nginx Forum: http://forum.nginx.org/read.php?21,246604,246613#msg-246613 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Кэширование статики, которую генерирует бэкэнд
у jira, teamcity узкое место - само приложение. оно начинает загибаться гораздо раньше, чем становятся заметны проблемы с отдачей статики. оптимизировать именно статику в данном случае - предпосылка непонятная 20 января 2014 г., 14:30 пользователь Anatoly Mikhaylov anat...@sonru.com написал: Вопрос не в количестве статики, а в том, что весьма неуклюже гонять http запросы за ее получением через Catalina. Http 1.1 с keep-alive, ConditionalGet для статики - это лишь попытка прикрыть глупость организации отдачи контента, который, во многих случаях, не меняется никогда. Одно дело - все эти украшения для статики, которую отдает Nginx напрямую с диска, но в данном случае все это отдается через бэкэнд. Так и остается загадкой зачем было сделанно именно так. Суть задачи не меняется, кэшировать статику (в случае с jira: location /s/) после первого обращения к ней. Proxy pass cache - копать в эту сторону? Анатолий On Jan 20, 2014, at 5:05 AM, Илья Шипицин chipits...@gmail.com wrote: teamcity очень мало статики отдает. для jira лучше настроить keepalive до бекенда а stash - это что именно ? 20 января 2014 г., 6:30 пользователь Anatoly Mikhaylov anat...@sonru.com написал: Добрый день, Есть несколько java-приложений (stash, jira, teamcity), в которых статика генерируется на ходу, файлов на диске с такими именами просто нет. Сейчас организовано элементарное проксирование proxy_pass и все работает, но медленно. Вопрос, как кэшировать ответы от бэкэнда (статику), чтобы это не препятствовало основному проксированию ответа бэкэнда? Анатолий ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Кэширование статики, которую генерирует бэкэнд
On Jan 20, 2014, at 14:52 , Anatoly Mikhailov wrote: в нашем случае - локально настроенная Jira с 10 пользователями, сомневаюсь, что приложение загнется при такой нагрузке. и все же, кто как кэширует статику, сгенерированную налету? http { proxy_cache_path /path/to/cache keys_zone=CACHE:20M; proxy_temp_path /path/to/temp; server { location /static/ { proxy_pass http://backend; proxy_cache CACHE; proxy_cache_valid 1h; } } } -- Igor Sysoev Анатолий On 20 Jan 2014, at 10:35, Илья Шипицин chipits...@gmail.com wrote: у jira, teamcity узкое место - само приложение. оно начинает загибаться гораздо раньше, чем становятся заметны проблемы с отдачей статики. оптимизировать именно статику в данном случае - предпосылка непонятная 20 января 2014 г., 14:30 пользователь Anatoly Mikhaylov anat...@sonru.com написал: Вопрос не в количестве статики, а в том, что весьма неуклюже гонять http запросы за ее получением через Catalina. Http 1.1 с keep-alive, ConditionalGet для статики - это лишь попытка прикрыть глупость организации отдачи контента, который, во многих случаях, не меняется никогда. Одно дело - все эти украшения для статики, которую отдает Nginx напрямую с диска, но в данном случае все это отдается через бэкэнд. Так и остается загадкой зачем было сделанно именно так. Суть задачи не меняется, кэшировать статику (в случае с jira: location /s/) после первого обращения к ней. Proxy pass cache - копать в эту сторону? Анатолий On Jan 20, 2014, at 5:05 AM, Илья Шипицин chipits...@gmail.com wrote: teamcity очень мало статики отдает. для jira лучше настроить keepalive до бекенда а stash - это что именно ? 20 января 2014 г., 6:30 пользователь Anatoly Mikhaylov anat...@sonru.com написал: Добрый день, Есть несколько java-приложений (stash, jira, teamcity), в которых статика генерируется на ходу, файлов на диске с такими именами просто нет. Сейчас организовано элементарное проксирование proxy_pass и все работает, но медленно. Вопрос, как кэшировать ответы от бэкэнда (статику), чтобы это не препятствовало основному проксированию ответа бэкэнда? Анатолий ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Кэширование статики, которую генерирует бэкэнд
On 20 Jan 2014, at 11:02, Igor Sysoev i...@sysoev.ru wrote: On Jan 20, 2014, at 14:52 , Anatoly Mikhailov wrote: в нашем случае - локально настроенная Jira с 10 пользователями, сомневаюсь, что приложение загнется при такой нагрузке. и все же, кто как кэширует статику, сгенерированную налету? http { proxy_cache_path /path/to/cache keys_zone=CACHE:20M; proxy_temp_path /path/to/temp; server { location /static/ { proxy_pass http://backend; proxy_cache CACHE; proxy_cache_valid 1h; } } } Игорь, спасибо, проблема решена, но возможно не оптимальным образом: proxy_cache_path /.../nginx/cache levels=1:2 keys_zone=STATIC:20M; proxy_temp_path /.../nginx/tmp; server { listen8000; location /jira { proxy_passhttp://jira_upstream/jira; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-for $remote_addr; proxy_redirectoff; proxy_connect_timeout 120; proxy_send_timeout120; proxy_read_timeout180; } location /jira/s/ { proxy_passhttp://jira_upstream/jira/s/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-for $remote_addr; proxy_redirectoff; proxy_connect_timeout 120; proxy_send_timeout120; proxy_read_timeout180; proxy_ignore_headers Set-Cookie; proxy_cache STATIC; proxy_cache_valid60m; } Анатолий -- Igor Sysoev Анатолий On 20 Jan 2014, at 10:35, Илья Шипицин chipits...@gmail.com wrote: у jira, teamcity узкое место - само приложение. оно начинает загибаться гораздо раньше, чем становятся заметны проблемы с отдачей статики. оптимизировать именно статику в данном случае - предпосылка непонятная 20 января 2014 г., 14:30 пользователь Anatoly Mikhaylov anat...@sonru.com написал: Вопрос не в количестве статики, а в том, что весьма неуклюже гонять http запросы за ее получением через Catalina. Http 1.1 с keep-alive, ConditionalGet для статики - это лишь попытка прикрыть глупость организации отдачи контента, который, во многих случаях, не меняется никогда. Одно дело - все эти украшения для статики, которую отдает Nginx напрямую с диска, но в данном случае все это отдается через бэкэнд. Так и остается загадкой зачем было сделанно именно так. Суть задачи не меняется, кэшировать статику (в случае с jira: location /s/) после первого обращения к ней. Proxy pass cache - копать в эту сторону? Анатолий On Jan 20, 2014, at 5:05 AM, Илья Шипицин chipits...@gmail.com wrote: teamcity очень мало статики отдает. для jira лучше настроить keepalive до бекенда а stash - это что именно ? 20 января 2014 г., 6:30 пользователь Anatoly Mikhaylov anat...@sonru.com написал: Добрый день, Есть несколько java-приложений (stash, jira, teamcity), в которых статика генерируется на ходу, файлов на диске с такими именами просто нет. Сейчас организовано элементарное проксирование proxy_pass и все работает, но медленно. Вопрос, как кэшировать ответы от бэкэнда (статику), чтобы это не препятствовало основному проксированию ответа бэкэнда? Анатолий ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Кэширование статики, которую генерирует бэкэнд
On Jan 20, 2014, at 15:27 , Anatoly Mikhailov wrote: On 20 Jan 2014, at 11:02, Igor Sysoev i...@sysoev.ru wrote: On Jan 20, 2014, at 14:52 , Anatoly Mikhailov wrote: в нашем случае - локально настроенная Jira с 10 пользователями, сомневаюсь, что приложение загнется при такой нагрузке. и все же, кто как кэширует статику, сгенерированную налету? http { proxy_cache_path /path/to/cache keys_zone=CACHE:20M; proxy_temp_path /path/to/temp; server { location /static/ { proxy_pass http://backend; proxy_cache CACHE; proxy_cache_valid 1h; } } } Игорь, спасибо, проблема решена, но возможно не оптимальным образом: proxy_cache_path /.../nginx/cache levels=1:2 keys_zone=STATIC:20M; proxy_temp_path /.../nginx/tmp; server { listen8000; location /jira { proxy_passhttp://jira_upstream/jira; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-for $remote_addr; proxy_redirectoff; proxy_connect_timeout 120; proxy_send_timeout120; proxy_read_timeout180; } location /jira/s/ { proxy_passhttp://jira_upstream/jira/s/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-for $remote_addr; proxy_redirectoff; proxy_connect_timeout 120; proxy_send_timeout120; proxy_read_timeout180; proxy_ignore_headers Set-Cookie; Ещё нужно proxy_hide_header Set-Cookie; иначе клиенты будут получать чужие куки. -- Igor Sysoev http://nginx.com proxy_cache STATIC; proxy_cache_valid60m; } Анатолий ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru