Chinaunix
标题:
请问在apache服务器如何实现下面情景的http代理/转发?
[打印本页]
作者:
kyle218
时间:
2008-03-23 00:29
标题:
请问在apache服务器如何实现下面情景的http代理/转发?
情景如下:
(1)在外网有机器一ip为58.0.98.12;
(2)在内网有两台机器,分别是机器二IP为128.128.81.188,上面部署apache server;机器三Ip为128.128.81.145,是部署weblogic的www服务器,可以访问上面的以下页面:
http://128.128.81.145/menu.html
http://128.128.81.145/exchange/login.html
其中
http://128.128.81.145/exchange/login.html
是
http://128.128.81.145/menu.html
一个“登陆”按钮的链接页面,
机器一和二外网连同,机器二和三内网连同。
现在我想在机器二128.128.83.188上实行http代理转发,访问内网同网段的机器128.128.83.145www服务,即:
(1)机器一IE浏览器上输入
http://128.128.81.188/menu.html
,需要机器一IE留言器地址仍然是
http://128.128.81.188/menu.html
,但实际页面内容为
http://128.128.81.145/menu.html
。
(2)点击上面的
http://128.128.81.188/menu.html
页面的“登陆”服务,需要IE地址为是
http://128.128.81.188/exchange/login.html
,但是页面内容转到
http://128.128.81.145/exchange/login.html
从而起到一定的隔离安全防范作用。
我试了试以下方法:
(1)使用apache的重定向rewrite功能,我可以设置
http://128.128.81.188/menu.html
的方面重定向到
http://128.128.81.145/menu.html
,但是IE浏览器地址也变成了
http://128.128.81.145/menu.html
,接下来点击重定向的页面“登陆”就是
http://128.128.81.145/exchange/login.html
的页面了,没有经过机器二的http代理转发(应该不能登陆了???),access_log日志里也没有记录这次代理access。同理“交易1”也是如此。是不是这个行不通????
(2)使用apache的反向代理功能,我使用的是一个页面写一次代理映射,如:
ProxyPass /menu.html
http://128.128.81.188/menu.html
ProxyPassReverse /menu.html
http://128.128.81.188/menu.html
ProxyPass /exchange/login.html
http://128.128.81.188/exchange/login.html
ProxyPassReverse /exchange/login.html
http://128.128.81.188/exchange/login.html
这样起了效果,但好像有点问题,还有如果有很多的页面怎么办?
还有其他好的,简单的方法吗?谢谢
作者:
守住每一天
时间:
2008-03-23 00:29
网卡可以用虚拟的,用iptables实现转发。
作者:
守住每一天
时间:
2008-03-23 12:10
rewrite应该是可以实现的吧。
可以请乔楚来看看。
作者:
kyle218
时间:
2008-03-25 01:21
标题:
回复 #2 守住每一天 的帖子
可以了,看了看rewrite的[P]flag,强制代理即可
机器二上apache主配置文件httpd.conf增加
RewriteEngine On
RewriteRule ^/(.*)
http://128.128.81.145/
$1 [P,L]解决。
---------------------------------------------------------
还有一个问题:
生产运行环境中机器一为58.0.98.12(外网),机器三为128.128.81.145(内网),
那么机器二apache是不是需要安装两个网卡?一个网卡配置两个IP可不可以实现?
还是需要安装两个网卡,一个IP设置为外网(比如128.0.78.12)?另一个IP设置为内网(128.128.81.188)?
那么这两个网卡之间数据如何转发?
是不是外网58.0.98.12连接请求机器二apache的外网地址128.0.78.12,然后机器二apache的外网卡将数据转发到内网卡(128.128.81.188),然后在转发到后台www服务器(128.128.81.145)?行得通吗?
作者:
kyle218
时间:
2008-03-25 02:28
另外:
反向代理服务器端access_log如何记录客户端的真实IP而不是代理服务器的IP?
作者:
abel
时间:
2008-03-25 10:42
原帖由
kyle218
于 2008-3-25 02:28 发表
另外:
反向代理服务器端access_log如何记录客户端的真实IP而不是代理服务器的IP?
這個需要其他的 DSO 來協助, Apache 原來的東西就我印象是無法滿足你這個要求
作者:
kyle218
时间:
2008-03-25 19:43
呵呵, 既然这样我就不写access_log了,省事
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2