Apache-Httpd
Apache2 和域控制
我有個問題。
如果我創建一個指向 Apache2 伺服器的 A 記錄,並創建一些帶有子域的虛擬主機。然後我可以在不創建其他記錄的情況下訪問子域嗎?
您似乎混淆了 DNS A 記錄和 Apache VirtualHosts。它們在完全不同的層面上運作,並且不能真正互換。
對於 Apache,當您指定一個
<VirtualHost>
節時,您告訴 apache 在收到ServerName
對該節中任何 s 的請求時要做什麼。但是,除非這些名稱在 DNS 中指向您的伺服器,否則外界不會向您的伺服器詢問它們,因此您需要兩者。(是的,我知道我在這裡跳過了萬用字元,我試圖讓那些在 DNS 和虛擬主機方面明顯是新手的人直截了當)
舉個例子:假設你有一條 A 記錄指向
www.foo.com
你的伺服器1.2.3.4
。你有以下VirtualHost
節:<VirtualHost *:80> ServerName www.foo.com DocumentRoot /var/www/html -- etcetera --- </VirtualHost>
這會告訴您的 apache 伺服器,應根據該節中的說明處理埠 80 上請求 www.foo.com 的任何联係人。
現在假設您添加一個子域:
<VirtualHost *:80> ServerName sub.foo.com ServerAlias sub2.foo.com DocumentRoot /var/www/subdomain/html --- etc --- </VirtualHost>
您現在已經告訴您的 apache 伺服器如何響應
sub.foo.com
對和的請求sub2.foo.com
。但是,除非您添加指向sub.foo.com
沒有1.2.3.4
人會知道向您的伺服器詢問該域的 A 記錄。