On Thu, 7 Oct 2004, Nick S. Knutov wrote:
> IS> Правила пишутся на уровне http, server и location.
> IS> Обрабатываются в порядке написания, то есть, апачевского аналога
> IS> "order allow,deny" нет.
> IS> Первое же попадание под правило прекращает дальшейшую обработку.
>
> Хм. Странно. А почему это делалось именно так?
В смысле "именно так" - не как в Апаче, или что ?
> >> Кстати, как делается связка front-end (nginx) + back-end (Apache) ?
> >> Например для случая когда есть один ip, один домен, и один порт(80).
> >> Надо чтобы все файлы из .../video отдавалсиь nginx'ом, остальное
> >> апачем. Чего и как писать в конфигах?
> IS> location / {
> IS> proxy_pass http://backend/;
> IS> }
> IS> location /..../video/ {
> IS> alias /path/to/video/;
> IS> }
>
> Ага.
> Смотрю на
> post_accept_timeout 60;
> client_header_timeout 3m;
> client_body_timeout 3m;
> send_timeout 3m;
>
> Если файл у меня скажем 700 метров. Как высчитывать эти цифры? С
> учетом того, что клиент может оказаться с обычного модема на
> 28800. А еще он может использовать докачку. nginx ее умеет?
Для модема это нормальные цифры.
send_timeout - это таймаут не на весь файл, а на одну операцию, за
которую передаётся кусок размером 16-64K в зависимости от размер ядерного
TCP буфера. Это примерно то же, что в Апаче Timeout.
post_accept_timeout - таёмаут между принятием соединения и собствено запросом.
client_header_timeout - таймаут на приём васего заголовка запроса.
client_body_timeout - таймаут при четнии тела запроса кусками по
client_body_buffer_size.
Докачку умеет. По науке это называется bytes-ranges.
> Еще. Я раньше никогда не делал разделения front и back -end'ов.
> Просто пользовался одним апачем. Поэтому не совсем понимаю принцип
> работы. Объясни пожалуйста, если "proxy_pass http://backend/;",
> то получается что что-то одно из множества [ip,host,port] у меня
> будет уже другое. Или я неправильно понимаю?
Обычно бэкенд вешают на другом порту или на localhost:80.
> Еще не понимаю - в общем случае получается (т.е. я хочу чтобы
> получилось) что и апач и nginx биндятся на один ip и на один порт.
> Это происходит и работает нормально? И их надо запускать в
> какой-то определенной последовательности, чтобы nginx оказался
> именно форнт-ендом? Или как?
Можно сделать так:
apache localhost:80
nginx ip:80
или так (работает во по крайней мере во FreeBSD):
apache *:80
nginx ip:80
nginx во втором случае надо запускать после Апача (а может и без разницы -
не проверял).
Игорь Сысоев
http://sysoev.ru