`
sealbird
  • 浏览: 583720 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Linux上Apache反向代理之ProxyPass IIS网站总结

阅读更多
Linux上Apache反向代理之ProxyPass IIS网站总结 收藏
   在把这篇总结写下来之前,我想说几句话: 工作和爱好千万别混在一起,心焦力瘁啊!为了完成一个看似以前很简单并且也有过成功经验的任务,我干到现在。本来以为挺简单的事情,加上那不争气的Promise MB Fasttrak133 的RAID驱动真的让我领略到了Windows服务器平台的魅力:一个字:真TMD烂!服务器安装的时候就有着各种困难,好容易弄好了,却在配置中出现了麻烦,当然不是指简单的对系统和网站的配置,而是针对它的转发配置。

  说正题!

  结构如此:


 

 资料:

  1、Linux1 为主服务器,Win1为本次配置的服务器,Linux2、Linux3为本次顺手配置的服务器;
  2、两个Domain: www.a.com、www.b.cn;
  3、防火墙为默认配置;地址:192.168.100.1
  4、外网IP地址:222.222.222.222,内网资源分配:Linux1 : 192.168.100.2、Linux2: 192.168.100.3、Linux3: 192.168.100.4、Win1: 192.168.100.5;
  5、之前所有Domain解析完毕,至222.222.222.222;

  本次重点是www.b.cn 这个Domain在WIN服务器中,使其能够在单一外网IP下通过Linux1的Apache反向代理转发。

  按照道理说,以我以前做的httpd的Proxy或者是Rewrite都是没有问题的,比如:



<VirtualHost 192.168.1.6:80>
ServerAdmin mail@fatsohome
ServerName mail.fatso.cn
ErrorLog logs/mail-error_log
CustomLog logs/mail-access_log common
rewriteengine on
proxyrequests   off
usecanonicalname off
rewriterule ^/(.*)$ http://192.168.1.2/$1 [P,L]
</VirtualHost>  

具体内容请参考我以前的文章:http://fatso.blog.hexun.com/2290770_d.html


  但是这一次却出现了问题,打电话问师兄,师兄帮我分析了很多情况以后也没能解决,关键是我们以前都是只选择使用Linux服务器,基本用不着Win平台的服务器,所以这一次显然要搞出问题所在。

  在测试和分析中,师兄所讲的使用下面的方式做反向是没问题的:



<VirtualHost>
ServerName  www.b.cn
RewriteEngine On
ProxyPass / http://www.b.cn/
...
</virtualHost>


  但是后来我发现,我们都忽略了一点:我们都处在自己的内网,无论是服务器还是Client都是会先被服务器返回内网的地址运行!这就让我们走入了误区,呵呵。

  当中反复测试了下面的方式,基本上包括了Proxy方式和Rewrite方式:



RewriteRule ^/$ http://192.168.100.5/index.asp

RewriteRule ^/(.*) http://192.168.100.5/ [P,L]

RewriteRule ^/(.*) http://www.b.cn/ [P,L]


  上面这些都自动专到了Linux1的主Domain: www.a.com,于是改用Proxy形式:


ProxyPass /${request_uri} http://192.168.100.5/${request_uri}
ProxyPass ^/$ http://192.168.100.5/index.asp


  但是失败告终,页面显示的是403受限访问信息,在无奈之下察看了这个虚拟主机的错误信息,也就是下面这行所表示的内容:


ErrorLog logs/site_b-error_log
CustomLog logs/site_b-access_log common


  发现在Error_log纪录中显示如此内容:



Sat Apr 26   11:08:42 2008   error client 221.1.13.192 client denied by server configuration: proxy:http://192.168.100.5/


  这是Proxy设置的问题,可Proxy的设置并没有错误:


<IfModule mod_proxy.c>
ProxyRequests Off

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


  失望之余突然发现了 Allow From这条规则没有进行过改动……,失败!! 于是更改这条规则:



...
Allow from 192.168.100
...


  再次试验,成功访问,可是却出现了部分内容无法显示,看来Proxy在虚拟主机部分的设置还是有问题的,更改:



ProxyPass / http://www.sdzxlz.cn/
ProxyPassReverse / http://www.sdzxlz.cn/


  重新启动Apache,成功~~~ :D 但是如此设置Proxy就会成为全局透明代理了,显然并不符合我们的需要,所以在虚拟主机设置中单独增加了设置条目,详细内容为:



<proxy>
     Order deny,allow
     Allow from 192.168.100
</proxy>

  最后顺手设置了其他两台Linux服务器,并按照此设置类进行,也都成功运行。

  现在给出在这次设置中,改动的文件:


/etc/hosts
增加 www.b.cn 的本地设置:

192.168.100.5   www.b.cn
192.168.100.5   b.cn




httpd.conf

启动模块:
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so

更改Proxy 设置,如上代码显示;
增加虚拟主机设置:

<VirtualHost 192.168.100.5:80>
ServerAlias b.cn
ServerAdmin mail@fatsohome
ServerName www.b.cn
ErrorLog logs/site_b-error_log
CustomLog logs/site_b-access_log common
RewriteEngine On

<proxy>
     Order deny,allow
     Allow from all
</proxy>

ProxyPass / http://www.b.cn/
ProxyPassReverse / http://www.b.cn/
</VirtualHost>


  参考文献:

  1. Apache 2.0中文手册 http://man.ddvip.com/soft/apache2.0/
  2. Google www.g.cn
  3. 我原来的技术Blog: http://fatso.blog.hexun.com/
  4. 师兄的Blog: http://pangty.ta139.com/pangty/
  5. 猪侠山庄Blog: http://www.linuxpk.com/37468/viewspace-11125.html
  6. NetSeek's Blog : http://www.linuxpk.com/391/viewspace-4017.html



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/shaobingj126/archive/2010/05/07/5567698.aspx

http://www.idouye.com 爱豆叶资料分享
分享到:
评论

相关推荐

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

    Linux 下安装 Apache 及反向代理配置完整过程 Linux 操作系统下安装 Apache 服务器是一件复杂的任务,需要逐步完成多个步骤。本文将详细介绍 Linux 下安装 Apache 及反向代理配置的完整过程。 安装 Apache 安装 ...

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

    ### Apache反向代理与负载均衡深入解析 #### 引言 Apache是一款广泛使用的Web服务器软件,不仅能够处理静态页面,还支持动态内容处理,并具备多种高级功能,如反向代理和负载均衡。本文将深入探讨Apache反向代理与...

    IIS与Apache反向代理

    【IIS与Apache反向代理】是指在一台服务器上,结合使用Microsoft的Internet Information Services (IIS) 和Apache HTTP Server,实现两者之间的协同工作,通过反向代理技术将请求分发到不同的服务环境中。...

    Apache的ProxyPass指令详解

    `ProxyPass`指令用于配置Apache服务器作为反向代理服务器的角色,将来自客户端的请求转发到另一个服务器处理,并将结果返回给客户端。这种方式下,Apache并不扮演传统代理的角色,而是作为远程服务器的一个镜像存在...

    apache 反向代理实现 负载均衡

    Apache HTTP Server(通常简称为Apache)是世界上最流行的Web服务器软件之一,其强大的模块化设计使其能够支持反向代理功能。 Apache反向代理的实现主要依赖于`mod_proxy`模块,这是一个核心模块,通常在安装Apache...

    用apache配置反向代理服务器

    作为反向代理,Apache可以与Web Application Server (WAS)、WebLogic Server (WLS)等其他应用服务器协同工作,但不支持与Microsoft Internet Information Services (IIS)集成。 #### 三、在路由器上进行端口映射的...

    Apache+SSL安全反向代理配置案例

    【Apache+SSL安全反向代理配置案例】 ...总结,Apache+SSL安全反向代理配置是一项涉及多个步骤的任务,包括环境准备、软件安装、配置SSL和反向代理设置。理解这些步骤和原理对于管理和维护安全的Web服务至关重要。

    Apache反向代理及负载均衡部署文档

    #### 一、Apache与IIS的反向代理和负载均衡背景 随着互联网应用的不断扩展和技术的发展,如何有效地处理大量的并发请求成为了一个重要的问题。在这种背景下,反向代理和负载均衡技术应运而生。反向代理是一种服务器...

    apache与IIS合成配置

    在 Apache 中,可以通过 `ProxyPass` 和 `ProxyPassReverse` 指令将某些路径的请求代理到 IIS 服务器上。例如,对于 ASP 网站 `www.pocketline.com.cn`,Apache 将所有对这个域名的请求代理到 IIS 的 83 端口。 5. ...

    apache2.4+tomcat8反向代理集群

    ### Apache2.4+Tomcat8 反向代理集群配置详解 #### 一、概述 在Windows环境下配置Apache2.4与Tomcat8的反向代理集群,涉及到多个步骤和技术要点,包括Apache与Tomcat的基本安装配置、负载均衡以及Session共享机制...

    利用Apache作反向代理

    Apache HTTP Server(通常称为Apache)是世界上最广泛使用的Web服务器软件,它支持多种功能和模块,其中一项就是反向代理。反向代理的基本原理是,客户端请求首先到达Apache服务器,然后服务器根据预设规则将请求...

    Apache&weblogic;安装及配置反向代理转发

    Apache 和 Weblogic 安装及配置反向代理转发 在本文中,我们将详细介绍如何安装和配置 Apache 和 Weblogic,以实现反向代理转发。该配置可以将 Weblogic 服务器的内容转发到 Apache 服务器上,从而提高网站的性能和...

    Apache服务器中设置端口映射和反向代理的方法.docx

    在Apache服务器中,端口映射和反向代理是两种重要的网络配置技术,它们用于管理和优化网站服务。本文将详细讲解如何在Apache服务器上设置这两种功能。 首先,端口映射(Port Mapping)允许我们将一个特定的外部端口...

    Apache正反代理原理

    在理解Apache正反代理原理之前,我们先来了解一下正代理(Forward Proxy)与反向代理(Reverse Proxy)的基本概念。 - **正代理**:正代理是代理客户端的行为,即客户端通过正代理服务器去访问目标服务器。这种模式...

    linux下apache与weblogic的整合

    本节将深入探讨这个主题,特别是如何利用Apache作为反向代理服务器实现负载均衡。 首先,Apache与WebLogic的整合主要是通过Apache的模块mod_proxy来完成。mod_proxy是Apache的一个模块,它可以将HTTP请求转发到其他...

    phpwamp多版PHP同时运行和反向代理.zip

    总之,通过巧妙地利用phpwamp和Apache的特性,我们可以轻松地在同一服务器上管理多个PHP版本,并通过反向代理实现单一端口访问多个项目,从而优化资源利用,提高运维效率。这个压缩包文件中的内容很可能是详细的步骤...

    Linux下通过Apache搭建Tomcat集群

    Apache作为反向代理服务器,可以将用户的请求分发到多个Tomcat实例上,从而实现应用服务的扩展和容错。接下来,我们将详细探讨这个过程中的关键步骤和涉及的技术点。 首先,理解集群的概念是至关重要的。集群是指多...

    apache包和tomcat安装包(Linux系统)

    你可以配置Apache作为反向代理,将动态请求转发给Tomcat处理。编辑Apache的配置文件`/etc/httpd/conf/httpd.conf`,添加以下内容: ```apacheconf LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_...

Global site tag (gtag.js) - Google Analytics