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文件