【发布时间】:2011-03-28 23:42:56
【问题描述】:
总结:
所有开发都在我的本地机器上。我的机器上运行着两台开发服务器。我想像使用这些开发服务器一样使用它们。最简单的方法是什么?
详情
我有两个开发服务器。一台服务器是Sproutcore 开发服务器(保存应用程序、css、图像等)。另一台服务器是App Engine 开发服务器(保存数据)。应用引擎服务器的访问方式是有限的。这两个开发服务器都在我机器上的不同端口上运行。
假设我有一个名为 X 的正则表达式,它指定可用于访问应用引擎服务器的所有 url 路径。
我想要一个代理服务器,它将所有匹配 X 的 http 请求路径转发到 App Engine 服务器,并将所有不匹配的路径转发到 Sproutcore 服务器。
例子:
如果我的代理服务器是 localhost:8080
而我的应用引擎服务器是 localhost:8081
我的sproutcore服务器是localhost:8082
我有一个匹配“/dogs/_the_dogs_id”的正则表达式(其中_the_dogs_id 是一个整数)
如果我提出 localhost:8080/js/application.js 的请求,我希望它会转到 sproutcore 服务器(因为它确实 不 匹配常规表达式)
如果我发出 localhost:8080/dogs/7 的请求,我希望它会转到应用引擎服务器(因为它确实匹配正则表达式)
就我的(客户端)请求而言,我只向 localhost:8080 询问所有这些资源。代理服务器默默地将它们转发到正确的目的地。保留请求类型、数据、headers等,我只需要它根据url请求路径转发即可。
有没有简单的方法来设置这样的代理服务器?它对 Web 开发非常有用。
谢谢
【问题讨论】:
-
这不是编程问题;这是一个网络服务器配置问题。投票转至webmasters。
-
我很好奇 - 一旦部署了这个应用程序,您打算如何运行它?
-
为什么不将 Sproutcore 部分移动到 App Engine http 服务器提供的静态文件夹下?
-
在生产中,Sproutcore 派生文件将由 App Engine 作为静态文件提供。此代理配置仅在使用开发服务器时才有用。开发服务器不会对静态文件进行完整的“编译”,它(似乎)只是为我编写的原始 javascript 提供服务。也就是说,它逐字提供文件(每次检查更改),它不会将它们“捆绑”成一个大文件。
标签: google-app-engine networking proxy sproutcore