2012-09-28 26 views
0

在Apache上有一個現有的應用程序。我想發送一些URL(Post Forms)到另一個服務器(不是Apache - 只是一個程序)進行一些預處理。這是這是如何組織ReverseProxy - 將一些URL發送到另一臺服務器進行預處理

1)我增加了一個額外的聽在Apache的conf端口(比如1234)

2)新增的80端口一個反向代理的一些網址,發送到第二個服務器監聽它的自己的端口

3)由於實際的HTML是Apache託管,第二個服務器Apache的請求所需的頁面1234端口上,然後它會修改HTML(POST形式),並提供它。它需要發佈的數據再次修改它&將其發送回apache。

我能夠實現上述下面的步驟 1)在我現有的htdocs目錄結構 - 創建)稱爲DIR1和DIR2

2 2個新的子目錄這就需要進行預處理所有形式,我謹到目錄dir1。處理帖子數據的所有腳本,我移動到dir2。我改變其他htmls來更新路徑。

3)我添加下面的代理confs

ProxyPass /dir1 http://localhost:1234/dir1

ProxyPassReverse /dir1 http://localhost:1234/dir1

Similiarly爲DIR2也。

這是工作正常,但我想知道如果這是一種更好的方式來做到這一點。 我正在尋找的主要改進是以這種方式進行反向代理配置,使得我不會打擾託管在htdocs中的原始應用程序(通過將東西移動到dir1,dir2 - 更新引用等)。有沒有辦法做到這一點?

回答

0

你所描述的設置背後的整個想法是有點異國情調。

我不知道爲什麼你不能簡單地改寫你要「攔截」這些形式的網址,並有請求或應答通過一些腳本語言如PHP或任何處理。這樣你就不需要第二臺服務器了,在原有的應用程序佈局裏面什麼都不需要改變,你在apache內部擁有一個完整的腳本環境,而不必使用外部程序。

因此,像這樣:

get form-1.html 
=> deliver form-1.html 
=> submit form-1.html 
=> process form-1.html 

get form-2.html 
!=> rewrite to intercept.php?form=form-2.html 
=> intercept form-2.html for preparation 
=> deliver intercepted form-2.html 
=> submit form-2.html 
!=> rewrite to intercept.php?form=form-2.html 
=> intercept form-2.html for processing 
=> process form-2.html 

(形式-1不被攔截,形式-2要被截取)

+0

我已經有第二個服務器 - 重寫整個功能一個PHP腳本是一個不平凡的任務。我的問題是如何將它與原始設置的最小變化進行整合。 – user93353

+0

啊,好的。你仍然可以使用PHP作爲包裝,並從那裏調用「程序」,以防止在這個相當奇怪的設置中使用兩臺服務器的麻煩。但顯然你有更好的判斷:-) – arkascha

相關問題