apache反向代理配置记录

搜索文件名:httpd.conf,打开后进行如下配置:

流程

  1. 打开proxy的相关modules:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_express_module modules/mod_proxy_express.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_html_module modules/mod_proxy_html.so
LoadModule proxy_http_module modules/mod_proxy_http.so
  1. 在最下面,补充proxy配置:
# 服务器名,例如 172.10.10.100
ServerName 172.10.10.100
# 作URL前缀匹配
ProxyPass /Home/Index/!
# Apache调整HTTP重定向应答中的Location
ProxyPassReverse /Home/Index/!
# 反向代理正则匹配
ProxyPassMatch ^/test(.*)$ http://172.10.10.100/test/$1

字段说明

ProxyPass

语法:ProxyPass [路径] ! | url

  • ProxyPass 路径 !
    不转发含路径的请求。
  • ProxyPass 路径 url
    仅替换从开始到路径(包含路径) 为 url
	🌰 
   ProxyPass match/path http://47.100.1.100 
   假设请求:
   http://172.100.1.100/match/path/route 
   此时,内部会转为:
   http://47.100.1.100/route

主要是用作URL前缀匹配,不能有正则表达式,它里面配置的Path实际上是一个虚拟的路径,在反向代理到后端的url后,path是不会带过去的

ProxyPassReverse

语法:ProxyPassReverse [路径] url

一般和ProxyPass指令配合使用,此指令使Apache调整HTTP重定向应答中Location, Content-Location, URI头里的URL,这样可以避免在Apache作为反向代理使用时后端服务器的HTTP重定向造成的绕过反向代理的问题

如果没有加这样的反向代理设置的情况下,访问http://www.test.com/example/a,如果www.example.com对请求进行了redirect至http://www.example.com/b,那么,客户端就会绕过反向代理,进而访问http://www.test.com/example/b。如果设置了反向代理,则会在转交HTTP重定向应答到客户端之前调整它为http://www.test.com/example/a/b,即是在原请求之后追加上了redirect的路径。

ProxyPassMatch

语法:ProxyPassMatch [regex] ! | url

  • ProxyPassMatch regex !
    不转发符合regex的请求。

  • ProxyPassMatch 正则regex url

    ProxyPassMatch ^/test(.*)$ http://172.10.10.100/test/$1
    

    符合正则^/test(.*)$都使用 http://172.10.10.100/test/

    http://47.10.10.100/test/route原请求路径会变为http://172.10.10.100/test/route

url是正则匹配,而不是简单的前缀匹配

参考
https://blog.csdn.net/fenglibing/article/details/6796094

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值