运行如下命令进行自动编译、安装、修改httpd.conf文件,激活mod_proxy模块
#/usr/local/apache/bin/apxs -c -i -a mod_proxy.c proxy_util.c
说明:
-c 执行编译操作
-i 安装操作,安装一个或多个动态共享对象到服务器的modules目录
-a 自动增加一个LoadModule行道httpd.conf文件,以激活此模块,若此行存在则启用之
-A 与-a类似,但是它增加的LoadModule行钱有井号前缀(#)
-e 需要执行编辑操作,可与-a和-A选项配合使用,与-i操作类似,修改httpd.conf文件,但并不安装此模块
2.如果还需要其他的proxy模块如mod_proxy_http、mod_proxy_ftp、mod_proxy_ajp,则单独编译进去
#/usr/local/apache/bin/apxs -c -i -a mod_proxy_http.c
#/usr/local/apache/bin/apxs -c -i -a mod_proxy_ftp.c
#/usr/local/apache/bin/apxs -c -i -a mod_proxy_ajp.c ajp*.c (这行ajp模式必须要加后面的ajp*.c)
注意:在使用ProxyPass指令的时候,ProxyRequests指令通常都应该是关闭的。
假设本地服务器的地址是 http://example.com/ ,那么
ProxyPass /mirror/foo/ http://backend.example.com/
将会把对http://example.com/mirror/foo/bar的本地请求内部转换成到http://backend.example.com/bar的代理请求。
其中,!指令当你不想对某个子目录进行反向代理的时候就有用了,例如:
ProxyPass /mirror/foo/i !
ProxyPass /mirror/foo http://backend.example.com
将会把所有的/mirror/foo请求重定向到backend.example.com除了对/mirror/foo/i的请求。
注意:
顺序很重要:排除的指令必须在一般的ProxyPass指令之前。