Я предпочитаю отключать загрузку динамического модуля httpd на моем рабочем сервере.
Я довольно давно использую mod_jk, статически связанный с httpd, и он оказался стабильным.
Теперь я хотел бы добавить Ruby Passenger (mod_rails / mod_rack) в свой httpd.
Интересно, можно ли так же статически связать его с Apache httpd? (без создания огромного httpd)
Если да, то есть ли какие-либо потенциальные подводные камни, проблемы с безопасностью или производительностью, когда и mod_jk, и mod_rails находятся в одном исполняемом файле?
Спасибо
Динамические общие объекты может легче решить вашу проблему. Это не только позволит вам использовать статически скомпилированный mod_rails, но и любой другой скомпилированный модуль, который вы хотите загрузить по мере необходимости.
По сути, как только вы статически скомпилируете mod_so
модуль, любые другие статически скомпилированные модули могут быть добавлены или удалены с помощью команды LoadModule в httpd.conf
.
Честно говоря, я бы никогда не рекомендовал компилировать несколько модулей в одну компиляцию Apache. Я не заметил никаких проблем с производительностью, но я определенно заметил большое удобство отсутствия необходимости перекомпилировать все, когда я хочу внести изменения. Я особенно оценил это при тестировании версий модулей.
Если под безопасностью вы имеете в виду безопасность, относитесь к безопасности так же, как при работе с Apache и любым модулем в динамической настройке. Скорее всего, вы уже сделали это с помощью mod_jk. Я бы также подумал, что у вас будет меньше потенциальных угроз, чем с предварительно скомпилированными исходными файлами, но, честно говоря, я не эксперт по безопасности серверов.