我有一個運行 Apache/PHP 伺服器的 Web 伺服器(我們稱之為 C1),並且它是連接埠轉送的,以便我可以在任何地方存取它。然而,Web 伺服器 LAN 內還有另一台電腦也有 Apache 伺服器(我們稱之為 C2)。我無法更改連接埠轉發,也無法更改 Apache 伺服器(也稱為安裝自訂模組)。
有沒有辦法在C1的目錄中存取C2? (例如,造訪 www.website.org/random_dir 將允許我瀏覽 C2 apache 伺服器的根目錄。)
我試圖盡可能少地更改配置/其他(例如激活模組等)
有可能的解決方案嗎?
答案1
答案2
您可以在 C1 中的資料夾上放置一個腳本,使用 curl 從 C2 取得資訊。當您造訪 www.website.org/random_dir 時,透過將其命名為index.php,您將獲得您的行為。
然而,要存取其他文件或資料夾,您必須將它們作為變數傳遞,例如: www.website.org/random_dir?folder=another_folder/subfolder&file=my_file
該解決方案適合您的需求嗎?
答案3
反向代理是您嘗試執行的操作的名稱。阿帕奇支持它。
反向代理是指網頁伺服器將 HTTP 請求或 URL 轉送到第二個網頁伺服器(可能在途中修改它),收集第二個網頁伺服器的回應,並傳遞結果(可能在返回時修改結果)。
這是一個很好的起點。當/如果我有時間的話,我會用一些例子來更新這個答案。
我會警告您這一點:反向代理非常適合靜態內容和頁面 URL 未在動態或 Javascript 生成內容的任何連結中「硬編碼」的內容。當您有一個Web 應用程式或具有自己的內建Web 伺服器的應用程式(例如Subsonic 或uTorrent 的遠端存取)時,有時您可能會遇到這樣一種情況:Web 應用程式產生的連結指向與您所在位置不同的位置反向代理到.這就是重寫模組發揮作用的地方,它可能會變得混亂。並非所有 Web 應用程式都可以成功進行反向代理。