2011-03-28 15 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