Apache-2.2

如何使用 Windows 電腦和 Apache 在我的 Wi-Fi 網路上創建自定義 TLD(用於 Intranet)?

  • November 6, 2012

從安裝 Apache 開始,您能否向我解釋一下我將如何做到這一點?

有多種方法可以做到這一點嗎?我希望http://intranet當您連接到網路時域(例如 )可用,而無需hosts在每台電腦上編輯文件。那可能嗎?

我還想為我的本地 URL 創建子域(例如http://site.intranet);你能告訴我如何在 Apache 中執行此操作,以及如何配置它嗎?

我是否必須將我的電腦重命名為intranet,或者是否有另一種方法來映射域而無需編輯每台電腦的配置或工作組(可能通過我的路由器的設置)?

如果您能幫助我更好地了解我的選擇,並告訴我如何設置伺服器,我將不勝感激;謝謝你!

這一切都取決於 DNS。您必須確保將 DNS 名稱intranet解析為 IP 地址。我只知道如何做到這一點:為基礎設施安裝我自己的 DHCP 和 DNS 服務。Bonjour 風格也應該可以,但我沒有這樣做的經驗。

我知道的作業系統支持 DNS 後綴,比如.localor example.corp。您將控製網路上的 DHCP 伺服器,對嗎?讓我們假設它會給出192.168.13.128帶有255.255.255.0網路遮罩的地址,最重要的是,它會給出知道如何在example.corp區域上權威回答的 DNS 伺服器的地址,它會告訴 DHCP 客戶端他們的 DNS 域是example.corphttp://intranet.example.corp如果您鍵入,大多數作業系統將嘗試訪問http://intranet

這就是短名稱的工作方式。像@Iain 所說的那樣,轉向基於名稱的虛擬主機。假設您的 Apache 配置顯示:

Listen *:80
NameVirtualHost *:80

我假設 Apache 伺服器有192.168.13.1/24IP 地址。我會放置一個As01.srv.example.corp.指向192.168.13.1和一個CNAMEintranet.example.corp.指向的記錄s01.srv.example.corp.,如果您需要子站點,我也會放入site.intranet.example.corp.,指向完整的s01.srvDNS 名稱。

回到 Apache 配置:您需要添加如下虛擬主機:

# this matches the NameVirtualHost directive and
# loosely matches the Listen directive; it could also be:
# NameVirtualHost 192.168.13.1:80 and you'd change this below as well
<VirtualHost *:80>
   # notice you'll need both of these;
   # they must match what's in the browser Location bar
   ServerName intranet.example.corp
   ServerAlias intranet

   # sorry for the Unix-style paths, I avoid Windows a bit
   DocumentRoot /var/www/intranet.example.corp
</VirtualHost>

如果您需要幫助,我不介意對此進行擴展。請隨時詢問!

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