2012-11-26 13 views
0

在執行傳入請求的代理之前,有沒有辦法讓haproxy或squid運行(bash)腳本(或其他http請求)?告訴haproxy或squid在執行代理動作之前執行腳本或http請求

我想在userX.mydomain.com上承載userX特定的http服務器(和服務),但這些服務可以運行或不運行,具體取決於承載它們的計算機的負載。

因此,在一天中的第一次,userX訪問URL userX.mydomain.com,承載serviceX的http服務器必須啓動。

我已經成功,這要歸功於HAProxy的,xinetd的,一些bash腳本,以及「HTTP刷新頭指令」進行HTTP服務器/服務開始後刷新..

,但現在我想作甚至更好的辦法是讓「http服務啓動」對客戶端來說是透明的,要求GET,PUT或POST,並且即使在第一個http請求時也能夠正確回覆正確的服務響應。

因此,我需要啓動該服務,然後立即將請求代理到剛剛啓動的服務。

我已經嘗試haproxy中的「http-check」和「check」選項,但我不認爲它們對我有用,因爲健康檢查與haproxy的請求處理是異步的。相反,我需要爲每個請求執行此腳本執行,然後在haproxy代理請求之前。

如果squid允許執行此類操作,我甚至可以讓haproxy將請求代理到squid,然後,可以啓動服務並代理請求

有人有想法實現它嗎?

在此先感謝。 https://github.com/mojombo/proxymachine

基本上proxymachine可以攔截HTTP請求,解析報頭,運行任意Ruby代碼,然後轉發該連接 -

回答

0

這可以使用proxymachine來完成。

您需要在proxymachine獲取連接之前終止SSL - 例如,使用haproxy(使用新的SSL功能)。

相關問題