Apache apxs添加proxy模块

详见(http://www.2cto.com/shouce/ApacheManual/programs/apxs.html)


apxs


apxs是一个为ApacheHTTP服务器编译和安装扩展模块的工具,用于编译一个或多个源程序或目标代码文件为动态共享对象,使之可以用由mod_so提供的LoadModule指令在运行时加载到Apache服务器中。


因此,要使用这个扩展机制,你的平台必须支持DSO(动态共享对象)特性,而且Apachehttpd必须内建了mod_so模块。前提是你支持动态模块加载DSO,即编译时有--enable-so选项,可通过如下命令查看当前是否含有mod_so.c模块


# /usr/local/apache2/bin/httpd -l


Compiled in modules:


  core.c


  prefork.c


  http_core.c


  mod_so.c


如果编译的时候没有添加proxy模块,则可以使用apxs命令去重新添加





需要的模块mod_proxy, mod_proxy_http, mod_proxy_balancer(Apache负载均衡模块)


先进入apache的源码目录,源码目录中有个modules的目录,这个目录里存放了apache模块的代码,关于proxy的源码在modules/proxy


# cd /usr/local/src/httpd-2.2.22/modules/proxy


# /usr/local/apache2/bin/apxs -i -c -a mod_proxy.c proxy_util.c


… …


----------------------------------------------------------------------


Libraries have been installedin:


   /usr/local/apache2/modules


… …


----------------------------------------------------------------------


chmod 755/usr/local/apache2/modules/mod_proxy.so


[activating module `proxy' in/usr/local/apache2/conf/httpd.conf]


# /usr/local/apache2/bin/apxs -i -c -a mod_proxy_http.c


… …


----------------------------------------------------------------------


Libraries have been installedin:


   /usr/local/apache2/modules


… …


----------------------------------------------------------------------


chmod 755/usr/local/apache2/modules/mod_proxy_http.so


[activating module `proxy_http'in /usr/local/apache2/conf/httpd.conf]


# /usr/local/apache2/bin/apxs -i -c -a mod_proxy_balancer.c


… …


----------------------------------------------------------------------


Libraries have been installedin:


   /usr/local/apache2/modules


… …


----------------------------------------------------------------------


chmod 755/usr/local/apache2/modules/mod_proxy_balancer.so


[activating module`proxy_balancer' in /usr/local/apache2/conf/httpd.conf]


 


-cia选项表示编译(compile)、安装(install)以及启动(active)--> a选项会自动添加如下模块在配置文件httpd.conf中


LoadModuleproxy_module       modules/mod_proxy.so


LoadModuleproxy_http_module modules/mod_proxy_http.so


LoadModuleproxy_balancer_module modules/mod_proxy_balancer.so


安装表示将.so文件放至Apache可以找到的位置,而启用则表示将模块加入httpd.conf文件


概括性总结:apxs即Apache extension stool,用于把Apache编译安装时候没有安装的模块制作成so(share object)文件,利用mod_so模块提供的loadmodule功能把这些模块加载进Apache,使Apache支持这些模块的功能,当然在安装的时候就加载这些模块更好。