Apache 代理(Proxy) 转发请求
代理分为:正向代理(Foward Proxy)和反向代理(Reverse Proxy)
1、正向代理(Foward Proxy)
正向代理(Foward Proxy)用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器,由代理服务器负责请求Internet,然后返回Internet的请求给内网的客户端。
Internal Network Client ——(request-url)——> Foward Proxy Server ———— > Internet
2、反向代理(Reverse Proxy)
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。如图:
/————> Internal Server1
Internet ————> Reverse Proxy Server ————> Internal Server2
\————> internal serverN
Apache 代理
apache支持正向代理和反向代理,但一般反向代理使用较多。
- #正向代理
- # 正向代理开关
- ProxyRequests On
- ProxyVia On
- <Proxy *>
- Order deny,allow
- Deny from all
- Allow from internal.example.com
- </Proxy>
- # Reverse Proxy
- # 设置反向代理
- ProxyPass /foo http://foo.example.com/bar
- # 设置反向代理使用代理服务的HOST重写内部原始服务器响应报文头中的Location和Content-Location
- ProxyPassReverse /foo http://foo.example.com/bar
注意:ProxyPassReverse 指令不是设置反向代理指令,只是设置反向代理重新重定向(3xx)Header头参数值。
举例:
下面是典型的APACHE+TOMCAT负载均衡和简单集群配置
- ProxyRequests Off
- ProxyPreserveHost on
- ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=Off
- ProxyPassReverse / balancer://cluster/
- <Proxy balancer://cluster>
- BalancerMember http://localhost:8080 loadfactor=1 retry=10
- BalancerMember http://localhost:8081 loadfactor=1 retry=10
- ProxySet lbmethod=bybusyness
- </Proxy>
ProxyPassReverse / balancer://cluster/ 表示负载均衡配置中的所有TOMCAT服务器,如果响应报文的Header中有Location(3xx指定重定向的URL)或Content-Location(指定多个URL指向同一个实体),则使用请求报文中HOST替换URL中的HOST部分。
- GET http://apache-host/entityRelativeUrl
- tomcat response 307 ,Header Location: http://localhost:8080/entityRelativeUrl
- apache 重写 response header中的Location为:http://apache-host:8080/entityRelativeUrl
注意:只有TOMCAT RESPINSE Location中的URL的Host部分匹配tomcat原始HOST的情况才重写。如307到http://localhost:8088/entityRelativeUrl是不会重写的。
Apache 代理(Proxy) 转发请求的更多相关文章
- Apache开启Proxy代理,实现域名端口转发
今天帮客户迁移网站,客户一个是ASPX的一个是PHP的网站,这时候有2个域名,可是php网站是Apache下的伪静态,必须要用到Apache,但是ASPX网站还必要到IIS+Mssql 然后到了这个时 ...
- IIS充当代理转发请求到Kestrel
接着上篇博文为ASP.NetCore程序启用SSL的code,这篇将介绍如何用IIS充当反向代理的角色转发请求到Kestrel服务器 与ASP.NET不同,ASP.netCore使用的是自托管web服 ...
- java nginx等代理或网关转发请求后获取客户端的ip地址,原理
在没有网关或者反向代理软件情况下,java里获取客户端ip地址的方法是request.getRemoteAddr() 先解释下http协议和TCP协议: 网页默认是进行http连接了,http协议即超 ...
- IIS充当反向代理转发请求到Kestrel
接着上篇博文为ASP.NetCore程序启用SSL的code,这篇将介绍如何用IIS充当反向代理的角色转发请求到Kestrel服务器 介绍 与ASP.NET不同,ASP.netCore使用的是自托管w ...
- Apache代理Tomcat实现session共享构建网上商城系统
一.环境介绍 二.安装配置后端服务器 三.安装配置前端服务器 四.配置Tomcat服务器实现session共享 五.构建网上商城系统 一.环境介绍 系统版本:CentOS 6.4_x86_64 Mys ...
- Apache代理技术
Apache代理技术 apache代理分为正向代理和反向代理. 正向代理是一个位于客户端和原始服务器之间的服务器, 客户端通过代理服务器访问外部的 web, 需要在客户端的浏览器中设置代理服务器. 反 ...
- Envoy 代理中的请求的生命周期
Envoy 代理中的请求的生命周期 翻译自Envoy官方文档. 目录 Envoy 代理中的请求的生命周期 术语 网络拓扑 配置 高层架构 请求流 总览 1.Listener TCP连接的接收 2.监听 ...
- Apache 实现ProxyPass转发URL到Tomcat并实现http自动转https【转载】
转自 Apache 实现ProxyPass转发URL到Tomcat并实现http自动转https - OPEN 开发经验库http://www.open-open.com/lib/view/open1 ...
- 代理(Proxy)和反射(Reflection)
前面的话 ES5和ES6致力于为开发者提供JS已有却不可调用的功能.例如在ES5出现以前,JS环境中的对象包含许多不可枚举和不可写的属性,但开发者不能定义自己的不可枚举或不可写属性,于是ES5引入了O ...
随机推荐
- 删除正在登录的SQL账号
exec sp_who '用户名' kill @spid sp_droplogin 用户名
- 使用ADO对象添加、修改、删除数据
使用ADO对象对数据库中的数据进行添加.修改和删除等操作.首先创建一个ADO类,通过ADO类连接数据库,并打开记录集.例如,使用ADO对象添加.修改.删除数据,程序设计步骤如下:(1)创建一个基于对话 ...
- Safari WebApp 模拟 原声APP禁止打开新窗口JS代码
if(("standalone" in window.navigator) && window.navigator.standalone) { var noddy, ...
- 代码异味---Code smell
程序员应该竭尽全力去写那些重复的代码.以下几点是我目前最需要改进的地方. 重复代码: 相同或者相似的代码存在于一个以上的地方. 长方法: 一个非常长的方法.函数或者过程. 巨类: 一个非常庞大的类. ...
- linux查看系统的硬件信息
linux查看系统的硬件信息,并不像windows那么直观,这里我罗列了查看系统信息的实用命令,并做了分类,实例解说. cpu lscpu命令,查看的是cpu的统计信息. blue@blue-pc:~ ...
- (Question)CSS中position的绝对定位问题
RT,绝对定位相对于定位的元素存在是哪里? https://yunpan.cn/crjSMTiak2srZ 访问密码 1570
- Query插件之ajaxFileUpload使用方法——input.change()事件的时候实现文件上传
点击下载 这是HTML <input id="uploadedfile" name="uploadedfile" type="file" ...
- PHP Markdown 解析器Parsedown
PHP Markdown 解析器Parsedown http://parsedown.org/demo
- [转] SpringJdbc的几种不同的用法
转自:http://vsp.iteye.com/blog/1182887 Spring对jdbc做了良好的封装,本人在学习时做了以下几种方式的尝试 首页先来创建一个dao接口 package com. ...
- 使用myeclipse新建和删除web项目时一定要小心
今天使用myeclipse在非工作空间的路径下新建一个web项目,路径内包含了原有一些web项目,可是我在指定位置时,在那个路径下多写一个子目录的路径,以为myeclipse会 为我默认新建子目录以便 ...