Security

Apache2 虛擬主機限制為本地主機

  • December 15, 2010

所以這是交易。

我有多個虛擬主機。每個虛擬都是一個單獨的域。每個域用於單獨的應用程序。假設我有虛擬主機:

http:// .abc.com http:// .def.com http://foo.com

然後是一個單獨的應用程序,它是 foo.com 應用程序的 RESTful HTTP api。

我想要實現的本質上是 *.abc.com 和 *.def.com 到 api.foo.com 之間的反向通道通信。這樣 .abc.com、.def.com 和 foo.com 就可以公開訪問(我已經設置好了)。但是訪問 api.foo.com 只有在從同一伺服器請求時才能訪問。

我的標準是:

  • 應該向任何試圖瀏覽 api.foo.com 的人提供 404(不拒絕權限)
  • 對 api.foo.com 的訪問僅限於 IP 或 IP 範圍

我通過以下方式實現了這一目標:

  • 沒有為 api.foo.com 設置 dns 記錄,因此任何嘗試訪問它的人都會收到 404。
  • 為 127.0.0.1:80 創建一個基於 ip 的虛擬主機,並將以下規則添加到 /etc/hosts

127.0.0.1 api.foo.com

這完全符合要求。但這是實現私有虛擬主機的正確方法嗎?

聽起來對我來說是一個很好的解決方案。如果您的站點增長,您甚至可以將其擴展到多台伺服器。

一個小提示:客戶端不會收到 404 錯誤,他們的瀏覽器會報告他們找不到主機開始。404 表示瀏覽器與伺服器通信,但伺服器找不到請求的文件。

引用自:https://serverfault.com/questions/212704