【发布时间】:2013-03-07 21:57:09
【问题描述】:
我正在寻找一种解决方案,它将面向外部的http://mycompany.com/external/* 重定向/代理到http://internal-host:1234/internal/*
(星号用作通配符)
好吧,我猜上面那句话还不够,下面是详细内容:
在我的 Intranet 中,我有几台服务器,(名称、地址、端口和上下文路径显然是为了简单起见而编造的):
- HRServer 在地址
10.10.10.10:1010/hr运行 - MailServer 运行在地址
20.20.20.20:2020/mail
我的系统只能从 ip 78.78.78.78 访问互联网,这里的限制是我只能使用一个端口(例如 8080)。换句话说 - 无论我的问题的解决方案是什么 - 外部地址都应该以 78.78.78.78:8080
我需要做的是通过这个端口公开 HR 和 Mail 服务。 我首先想到的是编写两个简单的 portlet(或带有两个框架的 HTML)并将它们嵌入到 78.78.78.78:8080/ 的简单网页中 但显然这不起作用,因为 portlet 会将浏览器重定向到例如 10.10.10.10:1010/hr,这在互联网上是不可见的。 所以我的下一个想法是——好的,让我们找到一个具有调度能力的反向代理。那我就可以制作了
-
78.78.78.78:8080/hr“重定向”到内部10.10.10.10:1010/hr -
78.78.78.78:8080/mail“重定向”到内部20.20.20.20:2020/mail
我还希望,如果在20.20.20.20:2020/mail/unread 上看到邮件服务器未读邮件,那么也可以从互联网访问未读邮件。
粗略地说 - 我希望
-
78.78.78.78:8080/mail/* 重定向到内部20.20.20.20:2020/mail/*(星号用作通配符)
我真的觉得我在这里错过了明显的东西,但老实说 - 我花了很长时间研究几个代理,但我没有找到答案。我可能正在寻找错误的单词或其他内容,但我找不到可以配置为将外部路径分派到不同内部路径的反向代理。
所以请 - 如果答案是例如Apache mod_proxy - 请给我一个关于我应该寻找的参数名称的提示。 最后 - 我将在 FreeBSD 操作系统中运行瘦身,但这不是一个强烈的要求(其他 *nix 操作系统也可以) 谢谢!
【问题讨论】: