2012-04-20 191 views
1

我被分配来实现(或更好的配置)一种http代理服务器。服务器应该支持这样的过程描述如下:代理服务器配置

-A用户打开他的浏览器的URL,其具有以下结构:HTTP://:/ RESOURCE_NAME

-proxy服务器的URL验证资源名称传入的http请求并确定它应该将来自客户端的原始请求转发到的网络资源的URL到

-代理服务器转发原始请求,等待直到它从外部web服务器获得答案,并且将其张贴回给用户

我正在使用java,但我不喜欢通过使用套接字来实现代理服务器。相反,我想使用一个Apache的HTTP服务器。有谁知道它是否有可能在配置级上使用apache http服务器完成这样的任务?如果是这样,怎么样?

非常感谢您的回答!

+0

在Apache中做到这一点你想要做什么URL验证?是否可以放入Apache配置中(例如,哪些URL有效)?另外,如果apache将不正确的请求代理到应用程序服务器,它将会返回类似于404或500的内容,并且可以将其返回给用户 - 这是否覆盖了您的需求,或者您是否需要先捕获不正确的URL它到达应用程序服务器? – 2012-04-20 11:51:45

+0

验证可能不是正确的术语。我想在这里做的是隐藏我的代理服务器后面的用户的外部Web资源。用户应该可以通过以下方式从我的代理请求资源:http:// my-proxy/resource_name,我的代理应该将此url映射到像http:// real-resource-provider/resource_name这样的url中,make a请求网络上的真实提供商并将实际提供商的响应返回给用户。如果真正的资源提供者返回类似404的HTTP错误代码,则代理应该将其重新传输给用户。 – 2012-04-20 12:03:03

回答

1

Apache不是用java编写的。你的机会很好,TomcatJetty

您将需要使用Servlet拦截所有请求来实现Web应用程序,然后处理Servlet中的所有自定义逻辑。

+0

“Apache不是用java写的” 好吧,这不是问题。服务器使用的技术没有限制。 “您需要使用Servlet拦截所有请求,然后处理Servlet中的所有自定义逻辑。” 那么,你认为在apache这样的http服务器的配置级别上解决问题是不可能的? – 2012-04-20 11:37:38

+0

绝对不是不可能的,不知道他想在那里做些什么有趣的事情。我希望你甚至可以用鱿鱼来做所有这些。 – 2012-04-20 11:39:10