sleep в обработке запроса

drmarker drmarker at gmail.com
Sat Aug 5 23:57:22 MSD 2006


Привет.

Нужен совет уважаемых гуру.

Есть сайт, с которого качают файлы. Есть ограничение по сессиям. В
случае превышения лимитов выдается 503 service temp unavail. front-end
- nginx, BE - apache2 prefork с mod_fcgid и perl. Разрешить/запретить
сессию решает скрипт на BE, который ходит в mysql.

Вопросов два:
a) поддерживает ли (по опыту, ощущениям, whatever) основная масса
download managers retry-after header?
b) имеет ли смысл перед выдачей 503 делать sleep(), чтобы снизить темп
долбления дятлов с агрессивными download managers?

Скажем, sleep(30). Понятно, что у меня останется висеть процесс на BE,
но зато это снизит общее количество выполнений процессов, выдающих
503. База меньше дергается, то се. И против DoS лучше защиты,
наверное, нет.

Второй путь - забить вообще :)

Третий - забить, но между скриптом и mysql поставить memcached с expire.

Что предпочесть?

И нельзя ли применить какую-нибудь хитрую фичу nginx, чтобы решить эту
проблему как-то изящнее?


More information about the nginx-ru mailing list