2013-01-18 28 views
0

我要尋找一個lib,讓我大致爲:的NodeJS或相對URL支持蟒蛇代理的lib

  • 連接到本地主機:端口,但見http://somesite.com
  • 重寫全部靜態資產爲指向本地主機:端口,而不是somesite.com
  • 支持Cookies /認證

我知道http://betterinternet.co/已經做了這個,但他們不會給我的源代碼,因爲某些原因。

我認爲這不是作爲免費代碼存在,所以如果我寫一個,有沒有細微之處呢?如果我在HTML和標題中替換所有出現的somesite.com,那足夠了嗎?

回答

1

我沒有看到任何直接解決您的問題的方法。如果我的理解正確,你需要一個緩存的HTTP代理,它在本地提供靜態內容,並使用Python(或nodejs)中定義的URL重寫規則。這是一項相當艱鉅的任務。

高速緩存的HTTP代理實現不是微不足道的。所以我會使用現有的實現,比如Squid(或者Apache,如果它也緩存的話)。

然後,您可以放置​​一個用Python編寫的(相對)簡單的HTTP服務器(例如基於BaseHTTPServerurllib2),它可以根據需要執行URL重寫,並將請求轉發給代理(或直接發送到互聯網)。

這個想法是依靠代理設置來執行所有不想修改的處理(包括基本重寫規則,身份驗證,緩存和緩存管理),並將前端實現限制爲僅執行自定義重寫你感興趣。

4

所以...你想要一個鏈接重寫的http代理?聽起來像Apache和mod_proxy_html。它不是用node或Python編寫的,但我認爲它會完成你所要求的。

+0

我正在尋找代理外部網站,例如從本地主機提供stackoverflow.com:5000並重寫所有靜態內容以使本地主機的基礎:5000而不是stackoverflow.com/(如果它出現在html中)。但是,我正在尋找一個Python或節點解決方案,因爲我打算在這些鏈接被重寫的方式上添加規則 – mkoryak

+0

'mod_proxy_html'將爲您提供大部分途徑,但沒有自定義規則。 – larsks

+0

這看起來正是我所需要的,但卻出現在錯誤的'語言'中。我的python或節點要求不是很流通。 – mkoryak