日期:2014-05-16  浏览次数:20859 次

Apache apxs添加proxy模块

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

安装表示将.