`
vtrtbb
  • 浏览: 361374 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ProxyPass与ProxyPassReverse及ProxyPassMatch的概述

 
阅读更多

1、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

注:配置的时候,不需要被转发的请求,要配置在需要被转发的请求前面。

 

2、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。

 

3、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的路径。

 

4、参考:

APACHE2.2中文文档:http://www.renren.it/my/api/apache_jinbuguo/Apache/ApacheMenu/mod/mod_proxy.html

本文出自:冯立彬的博客

ProxyPassMatch ^/app/files/public/orders/06_production/jobs/([a-zA-Z0-9\-]+)/Preview%20PNG/(V[0-9]+)/([a-zA-Z0-9_\-]+.png)$ http://192.168.2.42/app/files/public/orders/06_production/jobs/$1/Preview%20PNG/$2/$3

分享到:
评论

相关推荐

    Apache的ProxyPass指令详解

    通过使用`ProxyPass`指令,管理员能够轻松地将远程服务器上的资源映射到本地服务器的URL空间内,从而实现资源的透明代理与分发。本文将详细介绍`ProxyPass`指令的功能、语法及其应用场景。 #### 二、基本概念与语法...

    Apache与Tomcat整合配置[归类].pdf

    在Apache的`httpd.conf`中启用`mod_proxy_balancer`模块,并设置`ProxyPass`和`ProxyPassMatch`指令,定义一个名为`liveboscluster`的负载均衡器,包含多个Tomcat服务器的AJP连接器。每个Tomcat服务器的`server.xml`...

    apache转发服务器

    Apache的ProxyPass和ProxyPassReverse指令配合使用时,可以根据后端服务器的健康状态动态调整转发策略。通过mod_proxy_health_check,Apache可以定期检查后端服务器的运行状态,确保转发的可靠性。 综上所述,...

    IIS与Apache反向代理

    接着,创建虚拟主机,通过ProxyPass和ProxyPassReverse指令将所有指向站点A域名的请求转发到IIS的8080端口。 完成上述步骤后,重启Apache服务,即可通过站点A的域名直接访问,而无需输入8080端口号。这样,Apache和...

    Apache HTTP Server 与 Tomcat 的连接方式介绍

    在httpd.conf配置文件中,可以通过ProxyPass和ProxyPassReverse指令定义请求转发规则。 3. ** mod_proxy_http 模块 ** 如果不希望使用AJP协议,可以选择mod_proxy_http模块,让Apache通过HTTP协议与Tomcat通信。...

    TOMCAT+APACHE集成以及session复制

    集成TOMCAT和APACHE通常采用Apache的mod_proxy模块,通过Proxypass和ProxyPassReverse指令来转发请求。例如,你可以设置Apache监听80端口,然后将所有对特定路径(如/yourapp)的请求转发到运行在8080端口的TOMCAT上...

    使用Apache与Tomcat建立Web站点.doc

    为了在Apache和Tomcat之间进行通信,需要安装Apache的mod_proxy模块,通过ProxyPass和ProxyPassReverse指令将特定的URL请求转发到Tomcat处理。这需要在Apache的httpd.conf文件中添加相应的配置行。 【环境变量设置...

    resin4.0和apache 2.2搭建服务器

    2. 配置Apache虚拟主机:在Apache的配置文件(如httpd.conf或独立的vhost配置文件)中,设置一个虚拟主机,并启用ProxyPass和ProxyPassReverse指令,将特定的URL路径映射到Resin服务器。 ```apacheconf *:80> ...

    apache+tomcat集群配置文件和文档

    4. **Apache配置**:在Apache的httpd.conf或vhost.conf文件中,你需要定义ProxyPass和ProxyPassReverse指令来指定请求转发规则。例如: ``` ProxyPass / ajp://localhost:8009/ ProxyPassReverse / ...

    apache集群weblogic

    然后,在Apache的配置文件httpd.conf中添加相关指令,定义WebLogic集群的节点,设置代理规则,比如使用ProxyPass和ProxyPassReverse指令。 负载均衡策略可以通过Apache的mod_proxy_balancer模块来实现,例如轮询...

    Cas使用StartSSL证书实现统一认证服务.pdf

    具体来说,需要修改指令块,启用SSLEngine,SSLProxyEngine,并设置代理转发指令ProxyPass和ProxyPassReverse,指向CAS服务的地址。接着,需要指定证书文件的位置,包括SSL证书文件、私钥文件、证书链文件以及CA证书...

    tomcat负载均衡演示

    配置过程中,你需要在Apache的配置文件(如httpd.conf)中启用mod_proxy,并设置ProxyPass和ProxyPassReverse指令,指定Tomcat实例的URL。 2. **使用Nginx + mod_proxy_ajp**:Nginx是另一种流行的反向代理服务器,...

    Tomcat原理详解和各种集群的实现1

    配置mod_proxy时,需要定义ProxyPass和ProxyPassReverse规则,指定哪些URL应该被代理到哪个Tomcat实例。同时,可以通过mod_proxy_balancer模块实现负载均衡策略,如轮询或根据服务器负载动态分配请求。 4. 基于...

    Tomcat技术资源

    Apache的mod_proxy模块是实现这一功能的关键,通过设置ProxyPass和ProxyPassReverse指令,可以将特定路径的请求转发到不同的Tomcat实例。同时,可以通过设置LoadBalancer和KeepAlive等参数,调整负载策略和连接保持...

    apache+tomcat负载均衡整合文档

    使用 `ProxyPassMatch` 或 `ProxyPass` 和 `ProxyPassReverse` 结合 `BalancerMember` 配置负载均衡器。例如,使用轮询策略: ``` BalancerMember http://backend1:8080 route=server1 BalancerMember ...

    apache+多个tomcat+https

    对于多个Tomcat实例,你可以通过更改`ProxyPass`和`ProxyPassReverse`的目标地址来实现。例如,如果有两个Tomcat实例运行在8081和8082端口,配置如下: ```apacheconf *:443> ServerName app1.your.domain.com ...

    Apache2.4的编译安装及集群配置.doc

    - ProxyPass和ProxyPassReverse:设置反向代理规则,将请求转发到后端服务器。 - BalancerMember:定义负载均衡组中的成员,包括后端服务器的地址和权重。 - ProxySet:设置与负载均衡相关的参数,如stickysession...

    apache代理实现整合多个tomcat

    如果需要整合内部端口,可以使用 `ProxyPass` 和 `ProxyPassReverse` 指令,例如: ```apacheconf ProxyPass / ajp://localhost:8009/ ProxyPassReverse / ajp://localhost:8009/ ``` 这里需要注意的是,Apache ...

    Apache与Tomcat集群,伪静态,负载均衡

    本篇文章将深入探讨如何设置Apache与Tomcat的集群,实现伪静态处理以及负载均衡。 **Apache与Tomcat整合** Apache和Tomcat的整合允许我们利用Apache的静态资源处理能力和Tomcat的动态内容处理能力。通常采用两种...

Global site tag (gtag.js) - Google Analytics