Re: Кэширование статики, которую генерирует бэкэнд

2014-01-20 Пенетрантность S.A.N
  Вопрос, как кэшировать ответы от бэкэнда (статику), чтобы это не
 препятствовало основному  проксированию ответа 

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: Кэширование статики, которую генерирует бэкэнд

2014-01-20 Пенетрантность Илья Шипицин
у 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: Кэширование статики, которую генерирует бэкэнд

2014-01-20 Пенетрантность Igor Sysoev
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: Кэширование статики, которую генерирует бэкэнд

2014-01-20 Пенетрантность Anatoly Mikhailov

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: Кэширование статики, которую генерирует бэкэнд

2014-01-20 Пенетрантность Igor Sysoev
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

Кэширование статики, которую генерирует бэкэнд

2014-01-19 Пенетрантность Anatoly Mikhaylov
Добрый день, 

Есть несколько java-приложений (stash, jira, teamcity), в которых статика 
генерируется на ходу, файлов на диске с такими именами просто нет. Сейчас 
организовано элементарное проксирование proxy_pass и все работает, но медленно.

Вопрос, как кэшировать ответы от бэкэнда (статику), чтобы это не препятствовало 
основному  проксированию ответа бэкэнда?

Анатолий
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru