ограничение скорости

2013-06-19 Thread muhas
limit_rate устанавливает ограничения только для конкретного пользователя.
Есть ли возможность хоть как то ограничить общую скорость для всех
пользователей на уровне location  или server?

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,240203,240203#msg-240203

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

limit request and real ip

2013-06-19 Thread Vladimir Getmanshchuk
Добрый день!

1. Допустим дано:
http {
...

set_real_ip_from 10.0.0.0/8;
real_ip_header X-Forwarded-For;

limit_req_zone  $binary_remote_addr  zone=one:10m   rate=1r/s;
...
}
значит ли это что у меня в $binary_remote_addr будет реальный ip клиента?
или все же ip будет из сети 10.0.0.0/8 ?

2. Если все же второе, то верно ли что мне следует описывать зону как
описанно ниже?
http {
...

limit_req_zone  $http_x_forwarded_for  zone=one:10m   rate=1r/s;
...
}

Спасибо!

-- 
Yours sincerely,
Vladimir Getmanshchuk
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: limit request and real ip

2013-06-19 Thread Maxim Dounin
Hello!

On Wed, Jun 19, 2013 at 01:39:55PM +0300, Vladimir Getmanshchuk wrote:

> Добрый день!
> 
> 1. Допустим дано:
> http {
> ...
> 
> set_real_ip_from 10.0.0.0/8;
> real_ip_header X-Forwarded-For;
> 
> limit_req_zone  $binary_remote_addr  zone=one:10m   rate=1r/s;
> ...
> }
> значит ли это что у меня в $binary_remote_addr будет реальный ip клиента?
> или все же ip будет из сети 10.0.0.0/8 ?

Реальный ip.

-- 
Maxim Dounin
http://nginx.org/en/donation.html

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Балансировка и докачка файла

2013-06-19 Thread Илья Шипицин
расскажите в деталях, как именно у вас работает передача файла по частям ?

19 июня 2013 г., 2:43 пользователь vlastv  написал:
> Возник теоретический вопрос.
> Есть структура, что nginx выступает в качестве балансировщика, и передает
> запросы на другие сервера.
> А теперь процесс:
> 1 запрос от клиента о начале передачи файла по частам, допустим nginx
> передал его на server1
> 2 запрос - продолжение передачи файла, я так понимаю, nginx может его
> передать на server2
>
> Но server2 не имеет информации о предыдущем запросе, и просто не знает что с
> ним делать.
>
> Какими средствами можно обеспечить гарантированую отправку двух и более
> запросов от одного клиента на один сервер, допустим с задержкой в минут 10?
> Т.е. по истечению 10 минут, если от клиента не поступали запросы, то
> последующие его запросы можно вновь посылать на любой сервер.
>
> Posted at Nginx Forum: 
> http://forum.nginx.org/read.php?21,240198,240198#msg-240198
>
> ___
> 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: Балансировка и докачка файла

2013-06-19 Thread vlastv
nginx upload module

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,240198,240218#msg-240218

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Балансировка и докачка файла

2013-06-19 Thread denis

19.06.2013 0:43, vlastv пишет:

Но server2 не имеет информации о предыдущем запросе, и просто не знает что с
ним делать.

ip_hash?

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Модуль для доступа к базе данных, но без ngx_http_upstream_t

2013-06-19 Thread Sergey Avseyev
Привет всем,

Я написал nginx модуль, для доступа к базе данных Couchbase[1]. Этот
модуль получился немного не обычным:

1) используется библиотека libcouchbase, которая сама рулит установкой
обработчиков на события, и выполнением собственно IO из них. Так что
пришлось написать плагин[3], который подставляет функции nginx в виде,
удобном для libcouchbase.

2) частично потому что IO выполняется внутри libcouchbase, как и
маршрутизация запроса в кластер (основанная на хешировании ключа),
пришлось отказаться от использования ngx_http_upstream_t (хотя тут я
могу ошибаться). Кроме того libcouchbase может асинхронно получить по
конфигурационному сокету информацию об изменении топологии кластера, и
закрыть часть рабочих сокетов, и подготовить к открытию по требованию
новые.

В ходе тестирование оказалось, что моя реализация неплохо работает как
с под-запросами из других модулей, так и обычными прямыми запросами.
Но всё же нашёлся случай, когда модуль (к его исходникам у меня нет
доступа) делает позапрос в мой, и рассчитывает, что в можно будет
получить содержимое результата через r->upstream->buffer или статус
через r->upstream->state->status.

Собственно вопрос, может ли существовать модуль в экосистеме nginx,
который не заполняет r->upstream в обработчике?

[1]: https://github.com/couchbaselabs/couchbase-nginx-module
[2]: 
https://github.com/couchbaselabs/couchbase-nginx-module/blob/master/src/ngx_lcb_plugin.c

--
Sergey Avseyev
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Модуль для доступа к базе данных, но без ngx_http_upstream_t

2013-06-19 Thread Maxim Dounin
Hello!

On Wed, Jun 19, 2013 at 08:15:21PM +0300, Sergey Avseyev wrote:

> Привет всем,
> 
> Я написал nginx модуль, для доступа к базе данных Couchbase[1]. Этот
> модуль получился немного не обычным:
> 
> 1) используется библиотека libcouchbase, которая сама рулит установкой
> обработчиков на события, и выполнением собственно IO из них. Так что
> пришлось написать плагин[3], который подставляет функции nginx в виде,
> удобном для libcouchbase.
> 
> 2) частично потому что IO выполняется внутри libcouchbase, как и
> маршрутизация запроса в кластер (основанная на хешировании ключа),
> пришлось отказаться от использования ngx_http_upstream_t (хотя тут я
> могу ошибаться). Кроме того libcouchbase может асинхронно получить по
> конфигурационному сокету информацию об изменении топологии кластера, и
> закрыть часть рабочих сокетов, и подготовить к открытию по требованию
> новые.
> 
> В ходе тестирование оказалось, что моя реализация неплохо работает как
> с под-запросами из других модулей, так и обычными прямыми запросами.
> Но всё же нашёлся случай, когда модуль (к его исходникам у меня нет
> доступа) делает позапрос в мой, и рассчитывает, что в можно будет
> получить содержимое результата через r->upstream->buffer или статус
> через r->upstream->state->status.

Видимо, речь идёт про функциональность subrequest_in_memory, 
которая в коробке используется для ssi-команды include с 
параметром set 
(http://nginx.org/en/docs/http/ngx_http_ssi_module.html#commands).

Оно имеет ограниченную область применимости (читай: работает 
только с proxy и memcached).

> Собственно вопрос, может ли существовать модуль в экосистеме nginx,
> который не заполняет r->upstream в обработчике?

Да.  Более того - большинство модулей даже и не пытаются этого 
делать, простой пример - модуль static.

Если хочется, чтобы упомянутый выше случай правильно отражался в 
логах - можно подсмотреть соответствующую проверку e.g. в модуле 
fastcgi.

-- 
Maxim Dounin
http://nginx.org/en/donation.html

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru