為了獲得最大的安全性,我應該使用分佈式模式還是反向代理設置?
我已經與 ColdFusion 合作了很長時間。在我的腦海中已經根深蒂固的一點是,為了獲得最大的安全性,您應該在物理上將 Web 伺服器與 ColdFusion 伺服器分開。所以我一直使用 Adobe 所說的“分佈式模式”來完成這項工作。IIS 在一台伺服器上,而 ColdFusion 在另一台伺服器上。它們像往常一樣通過網路連接器進行通信,儘管是通過網路進行的。
幾年來,我遇到過一些文章,其中提到使用反向代理與在分佈式模式下執行一樣安全。通過反向代理設置,Web 伺服器和 ColdFusion 伺服器位於同一台物理機器上,但有一個代理伺服器處理請求並充當 Web 伺服器(基本上)。仍然在我的腦海中,我認為物理分離更安全。
在網際網路上很難找到任何明確的建議。即使在ColdFusion 11 文件中仍然提到分佈式模式-有關 Web 伺服器配置工具的更多資訊,包括有關多宿主和分佈式使用的資訊,請參閱配置和管理 ColdFusion 指南. (儘管在引用的頁面上並沒有太多關於它的資訊。)這兩種設置似乎都在各種部落格和文章中提到,但我發現人們使用反向代理設置而不是分佈式模式設置更常見。沒什麼具體的,只是我在網上搜尋時的看法。在分佈式模式下執行,Web 伺服器和 ColdFusion 伺服器在不同的伺服器上,在設置時肯定會增加一層複雜性。靜態文件位於 Web 伺服器上,CFML 文件位於 ColdFusion 伺服器上。等等。當您使用第三方產品時,這可能很難正確配置。
所以我的問題是,假設其他一切都相同,為了最大的安全性,您使用分佈式模式還是反向代理設置?還有一些你這樣做的原因。
不幸的是,ColdFusion 鎖定指南混淆了這件事。這是我發現的。
在ColdFusion 9 鎖定指南(第 14-15 頁)中,它指出:
您也可以考慮在分佈式模式下安裝 ColdFusion。這允許 Web 伺服器駐留在與 ColdFusion 伺服器物理分離的伺服器上。您還可以將多個 Web 伺服器連接到單個 ColdFusion 伺服器(這在 ColdFusion 9 文件中稱為多宿主)。這種分離可以提供額外的安全性,應該在需要最大安全性的環境中考慮。要安裝分佈式模式,請選擇內置 Web 伺服器選項。有關配置分佈式模式的資訊,請參閱http://www.adobe.com/support/coldfusion/administration/cfmx_in_distributed_mode/cfmx_in_distributed_mode02.html>。有關多宿主的詳細資訊,請參閱<http://help.adobe.com/en_US/ColdFusion/9.0/Admin/WSc3ff6d0ea77859461172e0811cbf364104-7fc3.html。
將面向公眾的 Web 伺服器和 ColdFusion 伺服器分開的另一種方法是使用反向代理。在反向代理設置中,ColdFusion 伺服器仍然安裝了 Web 伺服器,但所有外部客戶端請求都由代理伺服器處理,並且某些請求會發送到 ColdFusion 伺服器進行處理。
在ColdFusion 10 鎖定指南(第 27 頁)中,該聲明被精簡為:
為了獲得最大的安全性,請考慮在單獨的物理伺服器上執行 Web 伺服器和 ColdFusion。將面向公眾的 Web 伺服器和 ColdFusion 伺服器分開的一種方法是使用反向代理。
在反向代理設置中,ColdFusion 伺服器仍將安裝 Web 伺服器,但是所有外部客戶端請求都將由代理伺服器處理,並且只有特定請求將發送到 ColdFusion 伺服器進行處理。請查閱您的 Web 伺服器文件以設置反向代理。
在ColdFusion 11 鎖定指南中也沒有提及。它似乎應該在第 11 頁上或附近,這是語句在其他文件中的位置以及執行 Web 伺服器配置工具的位置。我很好奇為什麼皮特從最新的文件中刪除了這個。
當我使用 Adobe ColdFusion 時,我也用 Railo 標記了這個問題以獲取更多資訊。
您將“分佈式模式”(將 Web 伺服器和 CF 伺服器放在不同的盒子上)與使用反向代理相互排斥。實際上,它們是兩個獨立的問題。反向代理只是使用標準 Web 連接器的替代方案。它只會使您的 Web 伺服器(IIS、Apache、Nginx)將對 CFML 頁面的請求重定向到 CF 框上給定主機/埠上的 HTTP/HTTPS 或 AJP 埠。只要適當的埠打開,您就可以將反向代理配置為代理到本地主機或網路上的任何其他伺服器。
前任。您可以在 Tomcat 中的埠 8009 上啟用 AJP 偵聽器。然後在您的 Apache Web 伺服器(可以在您網路上的任何位置)上,您使用 proxy_ajp 模組將 .cfm 文件的代理請求反向到該埠。
我從來沒有親自處理過分佈式模式,因為針對我的 Web 伺服器的攻擊向量似乎要少得多。但是,如果您選擇使用“分佈式模式”,則可以使用 stock 連接器或反向代理。由你決定。