`

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支持正向代理和反向代理,但一般反向代理使用较多。
Apache-配置文件代码
#正向代理

# 正向代理开关
ProxyRequests On
ProxyVia On

<Proxy *>
Order deny,allow
Deny from all
Allow from internal.example.com
</Proxy>

Apache-配置代码
# 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是不会重写的。

描述:将远程服务器映射到本地服务器的URL空间
语法:ProxyPass [路径] !|url [键=值 键=值 ...]] [nocanon]
上下文:        server config, virtual host, directory
状态:扩展
模块:mod_proxy
该指令可以将远程服务器映射到本地服务器的URL空间;本地的服务器并不是扮演传统意义上的代理服务器的角色,而是表现为远程服务器的一个镜像。此本地服务器常被成为反向代理(reversed proxy)或者是网关(gateway)。路径是指本地虚拟路径的名字;url指远程服务器的一个部分URL,不能包含查询字符串。
注意:在使用ProxyPass指令的时候,ProxyRequests指令通常都应该是关闭的。
假设本地服务器的地址是 http://example.com/ ,那么
ProxyPass /mirror/foo/ http://backend.example.com/将会把对http://example.com/mirror/foo/bar的本地请求内部转换成到http://backend.example.com/bar的代理请求。
其中,!指令当你不想对某个子目录进行反向代理的时候就有用了,例如:
ProxyPass /mirror/foo/i !
ProxyPass /mirror/foo http://backend.example.com将会把所有的/mirror/foo请求重定向到backend.example.com除了对/mirror/foo/i的请求。
注意:
顺序很重要:排除的指令必须在一般的ProxyPass指令之前。
分享到:
评论

相关推荐

    apache代理mod_proxy、mod_proxy_http代理模块库包下载(32位windows\linux版本).txt

    该软件包是apache的httpd中mod_proxy.so、mod_proxy_http.so代理模块,分别对应包含linux、windows的版本。

    apache代理实现整合多个tomcat

    Apache 代理实现整合多个 Tomcat 是一种常见的 web 服务器架构策略,它允许通过单一的 Apache 服务器来管理和分发来自不同 Tomcat 实例的请求。这样做的好处包括简化对外服务的 URL、负载均衡以及集中化的安全管理。...

    apache开源项目源码commons-proxy-1.0-src(全部高质量代理模式proxy的java源程序)

    java.proxy,代理模式源码,设计模式,apache开源项目源码commons-proxy-1.0-src 各种代理模式操作的工具类源码以及代理模式案例源码,你会从中得到意想不到的效果! apache开源组织开发的开源项目源码,其优良的代码...

    apache代理Tomcat负载均衡配置

    本文将深入探讨如何配置Apache代理Tomcat进行负载均衡,以及如何通过具体的配置参数优化这一过程。 ### Apache代理Tomcat负载均衡配置详解 #### 核心概念解析 在深入配置细节之前,理解几个核心概念至关重要: 1...

    apache反向代理和负载均衡总结

    配置Apache作为反向代理,需要加载几个关键模块:`proxy_module`, `proxy_balancer_module`, 和 `proxy_http_module`。在Debian或Ubuntu系统中,这些模块位于 `/usr/lib/apache2/modules/` 目录下,需要通过在 `/etc...

    Apache正反代理原理

    当客户端访问`www.a.org`时,其请求会被Apache代理到`192.168.0.115`服务器;同样地,访问`www.b.org`时,其请求会被代理到本地的`9000`端口。 #### 五、总结 通过以上步骤,我们可以清晰地看到Apache作为反向代理...

    apache 反向代理实现 负载均衡

    Apache反向代理的实现主要依赖于`mod_proxy`模块,这是一个核心模块,通常在安装Apache时就已经包含。要启用反向代理功能,我们需要在Apache的配置文件`httpd.conf`中进行相应的设置。首先,我们需要确保`mod_proxy`...

    apache tomcat 反向代理502错误.txt

    apache tomcat 反向代理,http502错误,百度搜的解决不了问题 a.com 可以访问,www.a.com 无法访问http502错误

    Apache集群配置(proxy)

    本文介绍了使用Apache反向代理配置集群,基于mod_proxy+Apache 2.2.16+Tomcat 7实现负载均衡与集群配置。 一、 背景简介 大多数企业应用都希望能做到7*24小时不间断运行。要保持如此高的可用性并非易事,比较常见...

    linux下安装apache的及反向代理配置完整过程

    [root@localhost httpd-2.2.22]# ./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=most --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-...

    用apache配置反向代理服务器

    Apache不仅能够作为传统的Web服务器使用,还能够配置成反向代理服务器(R-Proxy)。作为反向代理,Apache可以与Web Application Server (WAS)、WebLogic Server (WLS)等其他应用服务器协同工作,但不支持与Microsoft...

    apache synapse WebService proxy

    最近研究了一下webservice与apache synapse ...基于两者,做了一个apache synapse实现webservice代理的一个例子。 具体思路是用apache synapse实现多个webservice服务的代理,对外提供统一的访问接口供一web服务调用。

    proxy.jsp、proxy.ashx、proxy.php、proxy.config

    **proxy.php** 是PHP语言实现的代理服务,适用于PHP环境,如Apache或Nginx。对于那些基于PHP的Web应用,可以使用`proxy.php`来处理跨域请求。与前面的两种代理服务一样,你需要将文件上传到Web服务器并配置相应的...

    https/http 的调用类和代理proxy调用类

    这些协议是Web应用程序的基础,用于客户端(如...以上就是关于"HTTPS/HTTP的调用类和代理proxy调用类"的相关知识点,这些组件在日常的网络编程中扮演着关键角色,为开发者提供了与远程服务器安全、高效交互的能力。

    Apache 集成tomcat proxy配置-BY.CRM.林元脉1

    Apache 集成 Tomcat 代理配置详解 Apache 集成 Tomcat 代理配置是指在 Apache 服务器中使用 Tomcat 代理来实现负载均衡和反向代理的功能。本文将详细介绍如何在 Apache 服务器中配置 Tomcat 代理,以实现高可用性和...

    利用Apache作反向代理

    在Apache中实现反向代理主要依赖于 mod_proxy 模块,该模块允许Apache服务器转发HTTP和HTTPS请求。首先,我们需要确保Apache服务器已经安装了mod_proxy模块。在Debian或Ubuntu系统中,可以通过运行以下命令来安装: ...

Global site tag (gtag.js) - Google Analytics