proxy vs content-range

Sergey Shepelev temotor на gmail.com
Вт Дек 22 20:45:38 MSK 2009


2009/12/22 Bogun Dmitriy <vugluskr at vugluskr.org.ua>:
> В Втр, 22/12/2009 в 19:12 +0300, Sergey Shepelev пишет:
>
>> Сегодня возникла одна проблема, которая поставила передо мной вопрос, как
>> работает сохранение ответа backend'а в proxy_temp_path в случае наличия в
>> запросе content-range.
>>
>> Моя проблема заключалась в том, что файлик размером в ~4gb стала тянуть
>> качалка в ~10 потоков, что привело к очень большой нагрузке на FS и
>> окончанию на ней места. Причем место занимали файлы уже удаленные с FS но
>> еще не закрытые nginx'ом.
>>
>> Конфиг вхоста:
>>
>> server {
>>     listen      1.1.1.1;
>>
>>     server_name .vhost.dom;
>>
>>     client_max_body_size 200m;
>>
>>     access_log  /var/log/nginx/vhost-access.log generic;
>>     error_log   /var/log/nginx/vhost-error.log info;
>>
>>     root /srv/vhost.dom/www/htdocs;
>>
>>     location / {
>>         proxy_pass         http://upstr_vhost;
>>         proxy_set_header   Host             $host;
>>         proxy_set_header   X-Real-IP        $remote_addr;
>>         proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
>>     }
>> }
>>
>> На upstream'е обыкновенный apache, который отдавал файл с ФС. Настроить
>> отдачу напрямую не всегда возможно, т.к. за содержимое вхоста "отвечает"
>> другой человек...
>>
>> Направьте в сторону информации о работе модуля proxy при наличии заголовка
>> content-range.
>
> proxy_buffering off;
>
> Смысл тогда держать nginx?

Смысл в том, что nginx не начинает на каждый запрос тяжелый OS поток,
следовательно, может принять запросы от тысячи клиентов одновременно.
Ещё мне лично синтаксис конфига нравится больше, чем у других веб
серверов.

nginx проксирует запрос апачу, апач читает огроменный файл с диска
используя какой-то буфер для чтения этого файла, в любом случае между
диском и апачом существует как минимум один буфер, в который попадают
данные. Вы добавляете ещё один. Вот теперь вы мне ответьте на тот же
самый вопрос. Какой смысл держать nginx.

Если для вас смысл в nginx - добавить ещё одно звено буферизации
статических файлов, тогда ещё proxy_cache надо включить и ещё squid
поставить.

> Если бы у меня была возможность разделить зоны вхостов на статические и
> динамические я бы просто статику прописал в отдачу на прямую nginx'ом и эту
> тему не поднимал бы.
>
> Меня больше интересыет логика работы nginx'а при проксировании запроса с
> установленным content-range. Зная ее можно будет планировать обход подобных
> проблемных мест.
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>
>


Подробная информация о списке рассылки nginx-ru