Re: Поддержка динамических модулей в nginx

Maxim Dounin mdounin на mdounin.ru
Чт Янв 28 17:45:49 MSK 2010


Hello!

On Thu, Jan 28, 2010 at 04:45:00PM +0300, Nikita Stupin wrote:

> Александр я не вижу проблемы после прочитки конфига подгрузить
> необходимые модули. Бесспорно это несколько затормозит nginx при
> запуске, "возможно схема не идеальна". :)
> 
> Собственно речь шла о том что в достаточно разнородной структуре на
> разных серверах нужны разные модули, вопрос не в сборке пакетов с
> разным набором модулей вопрос в неэффективности данного подхода. Я не
> предлагаю превратить nginx в апач, тот же lighttpd отлично умеет
> работать с .so модулями, при той же FSM архитектуре.

Поскольку я уже устал наблюдать этот тред, вот вам немного 
комментариев:

1. Использование динамически загружаемых модулей - это тормоза не 
только при их загрузке, но и при выполнении любых функций из них. 
Потому как добавляется лишнее разыменование указателя.  Тормоза 
небольшие, но зачастую и это важно.

2. Использование динамически загружаемых модулей - это 
фиксированное ABI (не говоря уже о API), и не дай бог вам 
подгрузить модуль собранный с другими заголовками.

3. Использование динамически загружаемых модулей - это dll hell 
аболютно забесплатно.

Все перечисленные пункты - несмертельны, и при желании с ними 
можно жить.  Но колчество вносимых неприятных моментов (в первую 
очередь - для разработчиков) слабо соизмеримо с плюсами.  Так что 
заниматься этим ни у кого никакого желания нет, и врядли когда 
либо появится.

На самом деле, единственный действительно неприятный (для 
некоторых) момент, связанный с отсутствием динамической загрузки 
модулей - это невозможность распространения closed source модулей.  
Но мы, что называется, don't care.

Maxim Dounin

p.s. Этот тред - не первый, и поиском по архиву наверняка при 
желании можно найти относящийся к теме ответ Игоря.  Расчитывать 
на повтор ответа - скорее всего не стоит.

p.p.s. Если вам очень хочется динамической загрузки модулей - 
сделайте, кто ж вам мешает...



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