Apache的ProxyPass简单使用
转:
Apache的ProxyPass简单使用
http://mtnt2008.iteye.com/blog/764207
该指令可以将远程服务器映射到本地服务器的URL空间;本地的服务器并不是扮演传统意义上的代理服务器的角色,而是表现为远程服务器的一个镜像。此本地服务器常被成为反向代理(reversed proxy)或者是网关(gateway)。路径是指本地虚拟路径的名字;url指远程服务器的一个部分URL,不能包含查询字符串。
描述:将远程服务器映射到本地服务器的URL空间
语法:ProxyPass [路径] !|url [键=值 键=值 ...]] [nocanon]
上下文: server config, virtual host, directory
状态:扩展
模块:mod_proxy
配置httpd.conf
- #保证以下模块加载
- LoadModule proxy_module modules/mod_proxy.so
- LoadModule proxy_http_module modules/mod_proxy_http.so
- #配置ProxyPass
- ProxyPass /new/ http://mysite.com/
- ProxyPass /new2/ http://192.168.0.169:8080/
注意:
顺序很重要:排除的指令必须在一般的ProxyPass指令之前。
上面的配置已经可以实现大部分功能了,要控制细节,可以参考官方文档:
http://httpd.apache.org/docs/2.0/mod/mod_proxy.html
===========================================================================================================
http://www.cnblogs.com/milton/p/4215125.html
apache中的mod_proxy模块用于url的转发,即具有代理的功能。应用此功能,可以很方便的实现同tomcat等应用服务器的整合,甚至可以很方便的实现web集群的功能。
例如使用apache作为域名www.test.com代理服务器,让其暴露在公网上,即DNS解析到本机器上,真正提供web服务器的是另一台位于同一内网的机器上,假设IP是192.168.100.22,那么只需要如下配置就可以了。
ProxyPass / http://192.168.100.22/
ProxyPassReverse / http://192.168.100.22/
ProxyPass 很好理解,就是把所有来自客户端对http://www.test.com的请求转发给http://192.168.100.22上进行处 理, ProxyPassReverse 的配置总是和ProxyPass 一致,
它的作用在于反向代理,如果响应中有302重定向,ProxyPassReverse就派上用场。
举例说明,假设用户访问http://www.test.com/exam.php,通过转发交给http://192.168.100.22
/exam.php处理,假定exam.php处理的结果是实现redirect到login.php(使用相对路径,即省略了域名信息),如果没有配置
反向代理,客户端收到的请求响应是重定向操作,并且重定向目的url为http://192.168.100.22/login.php
,而这个地址只是代理服务器能访问到的,可想而知,客户端肯定是打不开的,反之如果配置了反向代理,则会在转交HTTP重定向应答到客户端之前调整它为
http://www.test.com/login.php,即是在原请求之后追加上了redirect的路径。当客户端再次请求http:
//www.test.com/login.php,代理服务器再次工作把其转发到http://192.168.100.22/login.php。
客户端到服务器称之为正向代理,那服务器到客户端就叫反向代理 httpd.conf 的修改例子, 可以放到VirtualHost节点配置里面
ProxyPass /test http://192.168.1.2:8080/test
ProxyPassReverse /test http://192.168.1.2:8080/test AllowOverride None
Order Deny,Allow
Allow from all
=============================================================================================================
查看原文:http://www.ibloger.net/article/296.html
apache中的mod_proxy模块主要作用就是进行url的转发,即具有代理的功能。应用此功能,可以很方便的实现同tomcat等应用服务器的整合,甚者可以很方便的实现web集群的功能。
例如使用apache作为域名www.test.com代理服务器,让其暴露在公网上,即DNS解析到本机器上,真正提供web服务器的是另一台位于同一内网的机器上,假设起IP是192.168.100.22,那么只需要如下配置就可以了。
ProxyPass / http://192.168.100.22/
ProxyPassReverse / http://192.168.100.22/
ProxyPass 很好理解,就是把所有来自客户端对http://www.test.com的请求转发给http://192.168.100.22上进行处理
ProxyPassReverse 的配置总是和ProxyPass 一致,但用途很让人费解。似乎去掉它很能很好的工作,事实真的是这样么,其实不然,如果响应中有302重定向,ProxyPassReverse就派上用场。举例说明,假设用户访问http://www.test.com/exam.php,通过转发交给http://192.168.100.22
/exam.PHP处理,假定exam.php处理的结果是实现redirect到login.php(使用相对路径,即省略了域名信息),如果没有配置反向代理,客户端收到的请求响应是重定向操作,并且重定向目的url为http://192.168.100.22/login.php
,而这个地址只是代理服务器能访问到的,可想而知,客户端肯定是打不开的,反之如果配置了反向代理,则会在转交HTTP重定向应答到客户端之前调整它为 http://www.test.com/login.php,即是在原请求之后追加上了redirect的路径。当客户端再次请求http: //www.test.com/login.php,代理服务器再次工作把其转发到http://192.168.100.22/login.php。
客户端到服务器称之为正向代理,那服务器到客户端就叫反向代理。
ProxyPass与ProxyPassReverse及ProxyPassMatch这几个都是APACHE的代理指令
1、ProxyPass:
语法:ProxyPass [path] !|url
它主要是用作URL前缀匹配,不能有正则表达式,它里面配置的Path实际上是一个虚拟的路径,在反向代理到后端的url后,path是不会带过去的,使用示例:
1)、ProxyPass / images/ !
这个示例表示,/images/的请求不被转发。
- 1
- 2
2)、ProxyPass /mirror/foo/ http://backend.example.com/
- 我们假设当前的服务地址是http://example.com/,如果我们做下面这样的请求:
- http://example.com/mirror/foo/bar
- 那将被转成内部请求:
- http://backend.example.com/bar
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
注:配置的时候,不需要被转发的请求,要配置在需要被转发的请求前面。
2、ProxyPassMatch
语法:ProxyPassMatch [regex] !|url
这个实际上是url正则匹配,而不是简单的前缀匹配,匹配上的regex部分是会带到后端的url的,这个是与ProxyPass不同的。使用示例:
1、ProxyPassMatch ^/images !
这个示例表示对/images的请求,都不会被转发。
- 1
- 2
2、ProxyPassMatch ^(/.*.gif)1
- 这个示例表示对所有gif图片的请求,都被会转到后端,如此时请求
- http://example.com/foo/bar.gif,
- 那内部将会转换为这样的请求
- http://backend.example.com/foo/bar.gif。
- 1
- 2
- 3
- 4
- 5
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/
Apache的ProxyPass简单使用的更多相关文章
- Apache Thrift的简单使用
Apache Thrift的简单使用 ---------------------- 1. 简介 Thrift是Facebook的一个开源项目,主要是一个跨语言的服务开发框架.它有一个代码生成器来对它所 ...
- Apache 实现ProxyPass转发URL到Tomcat并实现http自动转https【转载】
转自 Apache 实现ProxyPass转发URL到Tomcat并实现http自动转https - OPEN 开发经验库http://www.open-open.com/lib/view/open1 ...
- 利用Apache POI 实现简单的Excel表格导出
1.利用POI API实现简单的Excel表格导出 首先假设一个学生实体类: package com.sun.poi.domain; import java.io.Serializable; impo ...
- Apache shiro的简单介绍与使用(与spring整合使用)
apache shiro框架简介 Apache Shiro是一个强大而灵活的开源安全框架,它能够干净利落地处理身份认证,授权,企业会话管理和加密.现在,使用Apache Shiro的人越来越多,因为它 ...
- apache benchmark 的简单安装与测试
1. 下载apache benchmark Copy From https://blog.csdn.net/fyqaccpt96/article/details/43272001 yum instal ...
- Apache服务器的简单配置与安全策略
在之前讲的关于weevely后门分析中,有说到利用Apache的配置文件.htaccess来隐藏php后门.关于.htaccess文件的用途,在此结合Apache服务器的具体配置作一详解,也算是自己的 ...
- Apache shiro的简单介绍与使用(与spring整合使用,并加入ehcache缓存权限数据)
apache shiro框架简介 Apache Shiro是一个强大而灵活的开源安全框架,它能够干净利落地处理身份认证,授权,企业会话管理和加密.现在,使用Apache Shiro的人越来越多,因为它 ...
- Gerrit+apache+H2数据库简单安装配置及建库流程
Gerrit 是一个基于 Web 的代码评审和项目管理的工具,面向基于 Git 版本控制系统的项目.因此需要Apache.Mysql.GIT等相关软件的支持 系统配置: 新装的UBANTU LINUX ...
- apache bench的简单使用
ApacheBench是 Apache 附带的一个小工具,专门用于 HTTP Server 的benchmark testing,可以同时模拟多个并发请求. 需要针对web做压力测试,所以简单学习了一 ...
随机推荐
- Fedora 19关闭防火墙
关闭防火墙systemctl stop firewalld.service 关闭开机启动防火墙systemctl disable firewalld.service
- Codeforces Round #503 (by SIS, Div. 2)-C. Elections
枚举每个获胜的可能的票数+按照花费排序 #include<iostream> #include<stdio.h> #include<string.h> #inclu ...
- #个人博客作业Week2——关于代码规范的讨论
<1> 这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 反驳:官僚制度在一定程度下维持了社会的和谐稳定,一个没有法律.没有拥有完善的管理体制.完全崇尚 ...
- ELF文件格式分析
一般的 ELF 文件包括三个索引表:ELF header,Program header table,Section header table. 1)ELF header:在文件的开始,保存了路 ...
- 最新一课 老师指点用Listview适配器
上课前 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android ...
- centos7改中文
centos7的与centos6有少许不同: 1.安装中文包: root@iZj6cbstl2n6r280a27eppZ tmp]# yum groupinstall "fonts" ...
- JavaScript高级程序设计 第六章 面向对象程序设计
面向对象程序设计 ECMA-262将对象定义为:“无序属性的集合,其属性可以包含基本值.对象或者函数.”严格来讲,这就相当于说对象是一组没有特定顺序的值.对象的每个属性和方法都有一个名字,而每个名字都 ...
- 简单谈谈DNS协议
DNS协议也可以称为DNS服务,全称是Domain Name System,即域名系统,和HTTP协议一样,也是一个位于应用层的协议(服务),它是基于运输层的UDP协议的,关于网络协议的分层介绍,见这 ...
- ES6定型数组
前面的话 定型数组是一种用于处理数值类型(正如其名,不是所有类型)数据的专用数组,最早是在WebGL中使用的,WebGL是OpenGL ES 2.0的移植版,在Web 页面中通过 <canvas ...
- codeforces472B
Design Tutorial: Learn from Life CodeForces - 472B One way to create a task is to learn from life. Y ...