ProxyPass与ProxyPassReverse及ProxyPassMatch的概述

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

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

本文出自:冯立彬的博客

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

原文地址:https://www.cnblogs.com/skiwdhwhssh/p/10295750.html

时间: 2024-08-01 08:09:45

ProxyPass与ProxyPassReverse及ProxyPassMatch的概述的相关文章

apache ProxyPass proxypassreverse

ProxyPass与ProxyPassReverse及ProxyPassMatch的概述 分类: LINUX及服务器维护2011-09-21 10:25 7491人阅读 评论(0) 收藏 举报 redirectapacheurlregex正则表达式path 这几个都是APACHE的代理指令: 1.ProxyPass: 语法:ProxyPass [path] !|url 它主要是用作URL前缀匹配,不能有正则表达式,它里面配置的Path实际上是一个虚拟的路径,在反向代理到后端的url后,path是

ubuntu 14.04+apache 反向代理设置

第一步 sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod proxy_balancer 第二步 在ubuntu的apache里,每个网站的配置文件是放在单独的文件里,找到 sites-available 文件夹里对应的文件并修改,修改后的配置文件差不多是下面的样子. ServerName www.a.com DocumentRoot “/var/site/www/” ProxyRequests Off <Proxy *> Order

Apache 正向代理与反向代理配置

Apache提供了 mod_proxy 模块用于提供代理服务,能够支持的包括正向代理.反向代理.透明代理.缓存.负载均衡,HTTP代理.FTP代理.SSL代理等若干强大的功能. 配置代理方法很简单那,首先在 Apache 上启用 mod_proxy 模块,需要注意的是,如果在 Apache-2.2 上,则还需要加载名为 mod_proxy_http 的模块.因为 2.2 系列把代理功能都拆分成N个小模块了. 一般 Apache 的这些功能我们在编译的时候都是以模块的形式加入的,编译时加上相关参数

Http和Nginx反代至Tomcat(LNMT、LAMT)

Http和Nginx反代至Tomcat(LNMT.LAMT) ================================================================================ 概述: 本章将主要介绍Http和Nginx反代至Tomcat,具体内容如下: LNMT部署并实现动静分离 LAMT部署的实现方式: ·proxy_http_module代理配置 ·proxy_ajp_module代理配置 Tomcat脚本(启动.停止.重启) ========

Weblogic+apache多虚拟主机

p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; font-size: 10.5pt; font-family: "Calibri", "sans-serif" } h1 { margin-top: 17.0pt; margin-right: 0cm; margin-bottom: 16.5pt; margin-left

Linux Apache 配置反向代理

最近遇到一个项目,需要访问某单位的内网服务器,对方要求必须要配置一个前置机,来转发所有的web请求,然后就学了一下反向代理,查了一些资料,也完成了HelloWorld的例子. 关于反向代理的介绍,可以参考 介绍1和 介绍2 相互补充吧,关于概念的介绍挺不错的. 我现在仅仅是完成了第一步,就是配置转发请求. 操作系统是centos,关于linux安装apache就不多说了 apache安装完成后,进入 /etc/httpd/conf目录,打开 httpd.conf文件 然后 1.先检查代理模块是否

Nginx服务器中处理AJAX跨域请求的配置方法讲解

Nginx 实现AJAX跨域请求AJAX从一个域请求另一个域会有跨域的问题.那么如何在nginx上实现ajax跨域请求呢?要在nginx上启用跨域请求,需要添加add_header Access-Control*指令.如下所示: ? 1 2 3 4 5 6 7 8 9 10 11 12 location /{ add_header 'Access-Control-Allow-Origin' 'http://other.subdomain.com'; add_header 'Access-Cont

linux apache 反向代理

查看apache运行状态 ps -eaf|grep httpd 查看apache安装环境 httpd -V 查看apache网络状态,包括端口等 netstat -anp|grep httpd 打开httpd.conf 确认proxy模块加载没有被注释掉 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so 在文件末尾加上代理配置路径 ProxyPas

搭建全能服务器(tomcat,IIS,PHP使用80端口共存)

搭建全能服务器 这是一个很常见的场景,要在同一台服务器上部署多种语言开发的程序,并且每种语言处于各种原因要放在不同web容器中去运行,而且都要通过80端向外提供服务,例如:在同一台服务器上部署.net程序,java程序,php程序,都通过80端口向外提供web服务.处于这种场景就只能搭建全能服务器了. 结构图: 大致思路: Apache 端口设置为:80 IIS  所有服务端口都设置为:8081 Tomcat 所有服务端口都设置为:8080 使用apache反向代理功能代理访问本地的IIS(80