侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

ProxyPass与ProxyPassReverse及ProxyPassMatch的概述

2023-11-30 星期四 / 0 评论 / 0 点赞 / 50 阅读 / 2341 字

这几个都是APACHE的代理指令:ProxyPass:语法:ProxyPass [path] !|url它主要是用作URL前缀匹配,不能有正则表达式,它里面配置的Path实际上是一个虚拟的路径,在反向

这几个都是APACHE的代理指令:

ProxyPass:

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

  1. ProxyPass /images/ !这个示例表示,/images/的请求不被转发。
  2. ProxyPass /mirror/foo/ http://backend.example.com/我们假设当前的服务地址是http://example.com/,如果我们做下面这样的请求:http://example.com/mirror/foo/bar那将被转成内部请求:http://backend.example.com/bar注:配置的时候,不需要被转发的请求,要配置在需要被转发的请求前面。

ProxyPassMatch:

语法:ProxyPassMatch [regex] !|url这个实际上是url正则匹配,而不是简单的前缀匹配,匹配上的regex部分是会带到后端的url的,这个是与ProxyPass不同的。使用示例:

  1. ProxyPassMatch ^/images !这个示例表示对/images的请求,都不会被转发。
  2. ProxyPassMatch ^(/.*.gif)$ http://backend.example.com$1这个示例表示对所有gif图片的请求,都被会转到后端,如此时请求http://example.com/foo/bar.gif,那内部将会转换为这样的请求http://backend.example.com/foo/bar.gif。

ProxyPassReverse

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

  • 参看下面的示例:ProxyPass /example http://www.example.com/ProxyPassReverse /example http://www.example.com/ProxyPassReverse的作用就是反向代理,如果没有加这样的反向代理设置的情况下,访问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的路径。

广告 广告

评论区