什么是DSO?

其实从Apache 1.3版本开始,Apache就提供了模块化的机制以便管理员选择HTTP服务器使用什么模块,模块可以被静态的编译进入httpd二进制代码中,也可以编译成为Dynamic Shared Objects (DSO),DSO与HTTP的二进制代码httpd是完全独立的。有关DSO的详细信息请参考 Dynamic Shared Object (DSO) Support
为什么使用DSO?
如果不采用DSO,采用普通的静态模块的方式,那么一旦要增加一个功能(比如要搞个IP连接限制模块),那么可能要全部从新编译整个Apache以及原来的一些模块,另外,如果发现某个模块或者Apache有升级版本,也要全部重新编译。Apache的开发者也就是考虑到这些原因才推出了DSO这么个东东,DSO非常方便,如果要增加一个模块只需要使用DSO模式来编译这个新模块就可以了,无需从新编译其他的东西,即使Aapche在同一个系列升级,也只需要编译一个支持DSO的新的Apache,原来编译好的DSO模块还是可以用的。(一个系列是指从Apache 2.0.43升级到Apache 2.0.44这样的情况,如果升级到下一个系列(比如 2.1.x),需要从新编译所有的代码,包括Apache和各个模块)
(另:使用DSO之后,因为要做一些前置工作,Apache在启动时慢大概20%,在运行时因为有时候需要相对寻址,因为在运行时大概会慢5%)

你可能感兴趣的:(职场,休闲,DSO)