apache用proxy 实现URL 转发

1.进入apache源代码目录的modules目录的proxy目录
运行如下命令进行自动编译、安装、修改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)

 
3.重启启动apache生效

 
4.配置apache 启用代理

 
将远程服务器映射到本地服务器的URL空间;本地的服务器并不是扮演传统意义上的代理服务器的角色,而是表现为远程服务器的一个镜像。此本地服务器常被成为反向代理(reversed proxy)或者是网关(gateway)。路径是指本地虚拟路径的名字;url指远程服务器的一个部分URL,不能包含查询字符串。

注意:在使用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指令之前。

 
example:
ProxyPass /abc http://share.mydomain.com
 
反向代理
ProxyPassReverse /abc http://share.mydomain.com

 
这样,访问www.mydomain.com/abc 会转到http://share.mydomain.com页面。

你可能感兴趣的:(apache,安装,源代码,local,动态)