2011-03-28 37 views
0

摘要代理服务器:我想的是“向前”两个开发服务器

所有的发展是我的本地机器上。我的机器上运行着两台开发服务器。我想使用这些开发服务器,就好像它们一样。什么是最简单的方法来做到这一点?

详细

我有两个开发服务器。一台服务器是Sproutcore开发服务器(包含应用程序,css,图像等等)。另一台服务器是App Engine开发服务器(保存数据)。应用引擎服务器的访问方式有限。这两个开发服务器都在我的机器上的不同端口上运行。

假设我有一个名为X的正则表达式,它指定了可用于访问应用引擎服务器的所有url路径。

我想要一个代理服务器,它将所有匹配X的http请求路径转发到App Engine服务器,并将所有不匹配的路径转发到Sproutcore服务器。

例子:

如果我的代理服务器是本地主机:8080

而且我的应用程序引擎服务器是本地主机:8081

我的SproutCore的服务器是本地主机:8082

而且我有一个正常的exp ression如果我做的请求本地主机匹配“/狗/ _the_dogs_id”(其中_the_dogs_id是一个整数)

:8080/JS/application.js中我期望去SproutCore的服务器(因为它匹配的正则表达式)

如果我做的请求本地主机:8080 /狗/ 7我预计要到应用程序引擎服务器(因为它不匹配正则表达式)

就在我的(客户端)请求而言,我只向localhost:8080请求所有这些资源。代理服务器默默地将它们转发到正确的目的地。保留请求类型,数据,头文件等。我只需要它根据url请求路径转发它。

有没有简单的方法来建立这样的代理服务器?这对Web开发非常有用。

谢谢

+0

这不是一个编程问题;这是一个Web服务器配置问题。投票转移到[站长](http://webmasters.stackexchange.com)。 – 2011-03-29 00:01:58

+1

我很好奇 - 您计划在部署后如何运行此应用程序? – 2011-03-29 00:07:50

+0

为什么不将Sproutcore部件移动到App Engine http服务器提供的静态文件夹下? – systempuntoout 2011-03-29 07:55:30

回答

0

事实上,经进一步调查,事实证明了SproutCore有自带的功能,做这个确切的事情。他们对这些想法提前有所认识,真是令人印象深刻。添加代理到一个特定的路线,只需添加下面的“#设置代理”注释以下行(在你的构建文件)一样简单

# =========================================================================== 
# Project: Todos 
# =========================================================================== 

# Add initial buildfile information here 
config :all, :required => :sproutcore 

# SET UP PROXY 
proxy "/task", :to => "localhost:8000" 
proxy "/tasks", :to => "localhost:8000" 

真的不能简单得多。我也很喜欢这个,因为它是一个便携式解决方案。这与需要另一种依赖的解决方案(例如Apache)形成鲜明对比。

0

mod_rewrite FTW

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

该模块采用的是基于规则的 重写引擎(基于一个 正则表达式解析器)重写的 请求的URL飞

您可以定义一个匹配URL的正则表达式,然后将其重新写入到要重新指向请求的位置。

此外,澄清,您所描述的机制被称为“反向代理”:http://en.wikipedia.org/wiki/Reverse_proxy

-tjw

+0

谢谢。是的,我确信我没有正确使用“代理”一词。 :) 我相信Apache的想法可行,但我完全不熟悉它。设置Apache似乎是一项不重要的任务。不过谢谢你的想法。 – 2011-03-31 05:34:51

+0

设置Apache实际上非常简单。 – 2011-03-31 12:43:14