Linux

htaccess 中的主機名有多貴?其他可能的解決方案?

  • June 21, 2011

為了輕鬆允許或禁止動態 IP 地址,您可以將它們作為主機名添加到 .htaccess 文件中。

正如我所讀到的: .htaccess 允許來自主機名?

它對連接的 IP 地址進行反向查找,查看響應是否與允許的名稱匹配。

(嗯,實際上 Apache 正在執行雙重查找,首先是反向查找,然後是對反向結果的正向查找。)

這就是我們目前不在 .htaccess 中使用動態 IP 主機名的原因:這“聽起來”相當沉重:每個請求需要額外查找 2 次。

  • 這確實很重嗎,一個相當繁忙的伺服器會不會尋找更少的負載而擺脫這個:)?(例如:這個“負載”與其他“負載”相比如何?如果一個請求的成本高出 1000 倍那麼查找它可能可以忽略不計。otoh,它可能是最後一根稻草 :))
  • **還有其他解決方案嗎?**我當然可以編寫一個查找主機名的腳本並將其放入 .htaccess 文件中,但這感覺有點像 hack。

僅使用 .htaccess 本身就是性能殺手。當在 Apache 全域配置中以任何方式啟用 AllowOverrides 時,httpd 必須在每個請求的 URI 的每個目錄級別查找 .htaccess 文件,以防它需要讀取某些內容。這相當於許多額外的 lstat() 呼叫,增加了延遲並增加了伺服器必須做的工作量。也許您因為共享主機設置而被 .htaccess 卡住了,但是無論如何您都無法真正獲得“高性能”… ;)

撇開 DNS 不是最重要的指標不談,您禁止“動態”IP 地址的目標是什麼?這將更適合應用程序防火牆——位於您的 Apache 伺服器前面進行 IP 檢查的東西,可能通過檢查黑名單,可能使用本地 DNS 解析器。

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