Хотелось бы как-нибудь хитро заставить nginx балансировать нагрузку
между несколькими жесткими дисками (между несколькими document_root)
Вижу несколько решений:
1. Поднять еще 7 nginx'ов на разных портах, сделать балансинг по tcp.
Наверно, плохо.
2. Поднять еще 7 server'ов в одном nginx'e, сделать баланскинг по tcp.
Наверно, плохо.
3. Написать что-то легкое на fastcgi, которое будет отдавать
X-Accel-Redirect. Наверно, плохо?
4. Написать что-то на встроенном perl'e. Хорошо ли? Как сделать
равномерную балансировку при его использовании, не прибегая к внешним
средствам.
5. Написать модуль, который будет сам менять document_root. Наверно, не
осилю.
Есть ли какие-то другие способы? Что из вышеперечисленного посоветуете?
Файлы небольшие, не больше 7 мегабайт.
поднять 7 nginx'ов(каждый над своим диском) на разных IP/портах, сделать балансинг через редирект на
нужный IP/порт главным nginx'ом через fastcgi, map или даже через location per each file. Все
варианты с 1-м nginx не будут давать контролируемое вручную количество воркеров nginx на каждый
диск. Если редирект не приемлем - проксирование без сжатия и буферизации.