我有一个关于动态可加载模块的问题。假设我有 2 个虚拟主机,而我<LoadModule>
只在其中的一个中使用。该模块是否会在第二个虚拟主机上加载?
我想知道 DSO(动态共享对象)的优势在哪里发挥作用。如果模块在主服务器级别范围内加载,似乎没有理由不使用静态绑定。我说得对吗?
答案1
您正在将模块加载到 Apache 进程中,而不是加载到特定的虚拟主机中。“LoadModule”指令只能在“服务器配置”(认为是“全局”)上下文中使用,并且会影响第一个 Apache 进程生成的每个进程。
使用 DSO 的主要优势是 (a) 您可以添加其他模块而无需重建 Apache,以及 (b) 您可以只加载您实际使用的模块,这可能会稍微减少 Apache 的内存占用。分销商喜欢 DSO,因为它们可以以模块化方式提供所有功能。如果您正在构建自己的 Apache 并且您有一组稳定的要求,那么没有理由不静态构建所有内容。您甚至可以获得稍快的启动时间,因为没有动态绑定,但这通常无关紧要(因为 Apache 往往是一个长期存在的进程,所以启动时间并不十分重要)。