我更喜欢在生产服务器上禁用 httpd 动态模块加载。
我已经使用静态链接到 httpd 的 mod_jk 很长时间了,并且证明它是稳定的。
现在我想将 Ruby Passenger (mod_rails/mod_rack) 添加到我的 httpd。
我想知道是否也可以用同样的方式将其静态链接到 Apache httpd?(不产生巨大的 httpd)
如果是,那么在同一个可执行文件中同时使用 mod_jk 和 mod_rails 是否存在潜在的陷阱、安全或性能问题?
谢谢
答案1
动态共享对象可能会更容易解决您的问题。这不仅允许您使用静态编译的 mod_rails,还允许您根据需要加载任何其他编译的模块。
本质上,一旦您静态编译了mod_so
模块,就可以通过中的 LoadModule 命令添加或删除任何其他静态编译的模块httpd.conf
。
坦白说,我从来不建议将多个模块编译成一个 Apache 编译。我没有注意到任何性能缺陷,但我确实注意到了每次我想进行更改时不必重新编译所有内容的极大便利。我在测试模块版本时尤其欣赏这一点。
如果您所说的安全是指安全性,那么请像处理 Apache 和动态设置中的任何模块一样对待安全性。您可能已经对 mod_jk 这样做了。我还认为,由于您使用预编译的源文件,因此潜在的威胁会更少,但老实说,我不是服务器安全性方面的专家。