`

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

阅读更多

1. 正向代理

配置正向代理很简单,只需要在浏览器的Proxy选项里加入你的Apache配置的vHost主机即可

 

1.1 Apache配置 httpd-vhosts.conf(以Windows下为例)

复制代码
<
VirtualHost 
*:80
>

    ServerAdmin prograsliu@gmail.com
    DocumentRoot "D:/www/test"
    ServerName www.test.com
    ServerAlias test.com
    ErrorLog "logs/test.com-error.log"
    CustomLog "logs/test.com-access.log" common    
    Alias /sublook "D:/www/test/look/sublook/"
    
<
Directory 
"D:/www/test"
>

        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    
</
Directory
>

    
    #正向代理设置
    ProxyRequests On
    ProxyVia On

    
<
Proxy 
*
>

        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    
</
Proxy
>

</
VirtualHost
>
复制代码

 

 

现在看正向代理设置那一段

  • ProxyRequests On:开启Apache正向代理
  • ProxyVia On:控制位于代理服务器链中的代理请求的流向

  引用Apache2.2官方文档中对ProxyVia的解释如下:

    1. 如果设置为默认值Off  ,将不会采取特殊的处理。如果一个请求或应答包含"Via: "头,将不进行任何修改而直接通过。
    2. 如果设置为On 每个请求和应答都会对应当前主机得到一个"Via: "头。
    3. 如果设置为Full  ,每个产生的"Via: "头中都会额外加入Apache服务器的版本,以"Via: "注释域出现。
    4. 如果设置为Block  ,每个代理请求中的所有"Via: "头行都将被删除。且不会产生新的"Via: "头。
  • <Proxy *>...</Proxy>:用来控制谁可以访问你的代理
1
 <
Proxy 
*
>

2
     Order deny,allow

3
     Deny from all

4
     Allow from 127.0.0.1

5
 </
Proxy
>

     此处设置为本机可以使用代理,真正使用的时候就自己设置了

 

1.2 浏览器设置(以FireFox为例)

 

1.3 访问效果

访问 www.sina.com,观察HTTP请求Response:

可以看到,Via:www.test.com,正向代理成功了。

 

2. 反向代理

2.1 Apache设置

复制代码
 1
 <
VirtualHost 
*:80
>

 2
     ServerAdmin prograsliu@gmail.com

 3
     DocumentRoot "D:/www/test"

 4
     ServerName www.test.com

 5
     ServerAlias test.com

 6
     ErrorLog "logs/test.com-error.log"

 7
     CustomLog "logs/test.com-access.log" common    

 8
     Alias /sublook "D:/www/test/look/sublook/"

 9
     <
Directory 
"D:/www/test"
>

10
         Options FollowSymLinks

11
         AllowOverride All

12
         Order allow,deny

13
         Allow from all

14
     </
Directory
>

15
     
16
     #反向代理设置

17
     ProxyPass /proxy http://www.proxypass.com/proxy

18
     ProxyPassReverse /proxy http://www.proxypass.com/proxy

19
 
20
 </
VirtualHost
>

21
 
22
 <
VirtualHost 
*:80
>

23
     ServerAdmin prograsliu@gmail.com

24
     DocumentRoot "D:/www/proxypass"

25
     ServerName www.proxypass.com

26
     ServerAlias proxypass.com

27
     <
Directory 
"D:/www/proxypass"
>

28
         Options FollowSymLinks

29
         AllowOverride All

30
         Order allow,deny

31
         Allow from all

32
     </
Directory
>

33
 </
VirtualHost
>
复制代码

 

 

现在看反向代理设置那一段

  • ProxyPass /proxy http://www.proxypass.com/proxy : 将 www.test.com/proxy 域下的所有请求转发给 www.proxypass.com/proxy 代理,例如 www.test.com/proxy/login.php 会交给 www.proxypass.com/proxy/login.php 代理
  • ProxyPassReverse /proxy http://www.proxypass.com/proxy :

        www.proxypass.com/proxy/login.php 中有如下代码:

1
 <?php

2
     header
('Location: http://www.proxypass.com/proxy/result.php');

3
 ?>

 

 

       那么在重定向的时候,Apache会将HTTP请求重新设为 http://www.test.com/proxy/result.php, 这样的作用稍后讲解

      www.proxypass.com/proxy/result.php 中有如下代码:  

1
 <?php

2
     echo
 'in proxypass.com <br>';

3
 ?>

 

 

2.2 浏览器访问效果

访问 www.test.com/proxy/login.php

  • Apache将请求交给 www.proxypass.com/proxy/login.php 代理,HTTP请求如图:

可以发现其实Request中的请求还是 www.test.com 的,但是它确实是由 www.proxypass.com 来处理的

  • proxypass.com/proxy/login.php 重定向到 proxypass.com/proxy/result.php

页面显示

 in proxypass.com

HTTP请求如图:

也可以看到请求依然是 www.test.com/proxy/result.php

这里就是 ProxyPassReverse 发挥作用的地方,如果不加这个项,重定向后HTTP请求会如下图:

分享到:
评论

相关推荐

    正向代理,apache,反向代理,Nginx

    配置正向代理服务器使用,Nginx只能做反向代理,Apache24可以作正向代理

    一分钟了解四层七层反向代理

    - **定义**:与传统的正向代理不同,反向代理代表的是服务器端,即它位于客户端访问路径的前端,代表一组服务器接收并转发客户端的请求。 - **作用**:隐藏后端服务器的具体信息,实现负载均衡,提高安全性和可用性...

    搭建nginx+apache+mysql+php+memcached+squid服务器集群.zip_nginx正向代理

    安装nginx.txt"),并配置为反向代理,设置负载均衡策略。 4. 安装MySQL("4.安装MySQL、memcache.txt"),并进行数据安全和性能优化。 5. 安装Memcached,与PHP集成("5.安装Apache、PHP、eAccelerator、...

    squid 2.6做代理服务器反向加速内网web

    本次实验将涵盖 DNS 的安装配置、Squid 2.6 的安装配置以及 Apache Web 服务器的安装配置,并通过 Squid 实现对内网 Web 服务器的反向代理。 #### 实验环境配置 **1. 实验平台** - **RHEL1 (内网 Web 服务器):** ...

    Nginx反向代理服务器及负载均衡服务配置实战1

    配置Nginx实现反向代理,可以在nginx.conf配置文件中添加相应的server块,例如将所有80端口的请求转发到15672端口。负载均衡的配置则需要在http或stream上下文中定义upstream块,指定服务器列表和负载均衡策略。 ...

    轻量级HTTP服务器反向代理服务器.ppt

    - 相同点:两者都是HTTP服务器,都采用模块化设计,支持多种编程语言接口,如PHP、Perl、Python等,并能实现正向和反向代理、虚拟主机、URL重写、压缩传输和SSL加密。 - 不同点:Nginx在处理静态内容时速度更快,...

    Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解

    正向代理与反向代理概念** **正向代理**: - 位于客户端和原始服务器之间。 - 客户端向代理服务器发送请求。 - 代理服务器转交请求并返回结果给客户端。 - 主要用于帮助客户端访问受限的资源。 **反向代理**: - 对...

    正反向代理与端口转发技术详解.pptx

    反向代理则是隐藏了服务器端的信息,客户端直接请求到反向代理服务器,代理服务器根据配置决定将请求转发到哪个真实的服务器上。反向代理常用于负载均衡,提高网站的可用性和性能,同时也可用于安全防护,如防止...

    在Nginx服务器中配置mod_proxy反向代理的方法

    反向代理做法可以为网站安全做更高一步,像一些银行肯定是使用了反代理就是你进入代理服务器也得不到任何数据,下面我来介绍nginx用mod_proxy实现反向代理配置方法。 由于项目需要实现一个域名代理的功能 比如: ...

    proxyServer squid / varnish / apache traffic server / ATS

    代理可以分为正向代理和反向代理,其中正向代理是客户端使用的代理,而反向代理则是服务器使用的代理。 Squid是一个广泛使用的开源代理缓存服务器软件,它的设计目标是提供一个通用的Web代理缓存解决方案。Squid...

    反向组件负载均衡所需jar包

    这里提到的"反向组件"通常是指反向代理,它与传统的正向代理相反,工作在服务器端,接收来自客户端的请求并转发给内部服务器,从而保护了后端服务的隐私和安全。而"负载均衡"则是为了提高系统可用性和性能,通过分散...

    实战Nginx.取代Apache的高性能Web服务器

    6.3 Nginx负载均衡与反向代理的配置实例 6.4 Nginx负载均衡的HTTP Upstream 模块 6.5 Nginx负载均衡服务器的双机高可用 第7章 Nginx的Rewrite规则编写实例 7.1 什么是Nginx的Rewrite规则 7.2 Nginx Rewrite规则...

    nginx入门学习讲义.docx

    正向代理和反向代理的概念: - **正向代理**:客户端通过代理服务器访问目标服务器,隐藏了真实客户端的身份,服务器只知道请求来自代理。例如,使用代理服务器访问被限制的网站。 - **反向代理**:客户端的请求被...

    Nginx-笔记1

    在本课程中,我们将深入探讨Nginx的相关知识,包括反向代理和正向代理的概念,常用Web服务器的对比,Nginx的安装部署,核心配置分析,虚拟主机配置,Location匹配规则,以及日志配置和切割处理。 首先,理解【反向...

    CentOS-6.5-apache网站服务器配置实例.doc

    1. **DNS解析**:为了使域名与IP地址对应,需要在DNS服务器的正向和反向解析文件中添加相应的记录。正向解析将域名映射到IP地址,反向解析则将IP地址映射回域名。在本例中,正向解析为`inner1`和`inner2`分别设置A...

    keepalived+Nginx+tomcat 搭建集群

    3.1 正向代理与反向代理概念 正向代理是指客户端主动设置代理服务器,通过代理访问互联网资源;反向代理则是服务器端配置,客户端无感知,客户端请求到达 Nginx 时,Nginx 根据配置将请求转发到内部的其他服务器。 ...

Global site tag (gtag.js) - Google Analytics