是否可以告訴Apache只服務配置的VHosts?我目前的解決方案是將VHost與*作爲別名,在以前的VHosts不匹配時使用。讓Apache只服務配置的VHosts
回答
在Apache中,如果沒有其他VirtualHost匹配,則首先列出的VirtualHost是默認值。因此,您可以創建一個沒有內容的虛擬虛擬主機,或僅創建一個登錄頁面(「沒有在此地址配置的站點」或類似地址),並將其作爲您的第一個VirtualHost。 ServerAlias的ServerName是必需的,只要它是第一個。
參見:http://www.onlamp.com/pub/a/apache/2004/01/08/apacheckbk.html
我最常做的是禁止進入的conf.d /安全文件的根目錄下(這是在Ubuntu的標準方式,在其他操作系統,你可以把那個在httpd.conf )
<Directory />
AllowOverride None
Order Deny,Allow
Deny from all
</Directory>
因此,Apache將只允許訪問在VirtualHosts中配置的子目錄。例如,你可以有:
/var/www/example1.domain.com/your_files
/var/www/example2.domain.com/your_files
而且具有VirtualHosts像:
ServerName example1.domain.com
ErrorLog /var/log/apache2/example1.domain.com_error.log
CustomLog /var/log/apache2/example1.domain.com_access.log Combined
DocumentRoot /var/www/example1.domain.com/
(...)
<Directory />
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ServerName example2.domain.com
ErrorLog /var/log/apache2/example2.domain.com_error.log
CustomLog /var/log/apache2/example2.domain.com_access.log Combined
DocumentRoot /var/www/example2.domain.com/
(...)
<Directory />
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
但是,mrjink指出,這種配置將使用第一個VirtualHost將服務器以某種方式服務器的所有請求(通過ip或未知主機名)。因此,需要額外的Dummy VirtualHost,該名稱應該像「000-dummy-virtualhost」一樣,以確保它是提供這些請求的第一個VirtualHost。
有了這個conf,服務器上的請求或你的IP將不會被服務,但請求example1.domain.com或example2.domain.com將會。
Regards,
雖然這是一個工作示例,但它並不真正回答問題。在此配置中,所有以某種方式到達服務器的請求(通過ip或未知主機名)將由example1.domain.com提供服務,因爲這是第一個列出的VirtualHost。 在另一個說明中,絕不要混合相對和絕對選項。只要使用'Options FollowSymLinks MultiViews',如果這些是您想要的唯一選項。在2.2之前,在它被阻止之前,在2.4之前它實際上是被禁止的。 http://httpd.apache.org/docs/2.2/mod/core.html#options http://httpd.apache.org/docs/2.4/mod/core.html#options – mrjink
明白了,編輯帖子。謝謝! – alvaroreig
- 1. Bugzilla Apache服務器配置
- 2. Apache Vysper服務器配置?
- 3. VHosts Nginx配置Playframework Websockets
- 4. Apache vhosts配置RewriteCond忽略URL的一部分
- 5. 配置Zotero只服務器
- 6. Apache Web服務器的配置問題
- 7. apache服務器配置代理
- 8. 下載apache服務器配置
- 9. 如何爲Web服務配置apache mod_rewrite
- 10. Apache服務器配置虛擬主機
- 11. Apache 2.4.4 WAMP VHosts錯誤
- 12. ColdFusion 9,Tomcat 7,Apache和vhosts
- 13. MongoDB的配置服務器 - 只讀
- 14. 配置Apache Web服務器以使用代理服務器
- 15. Apache服務器配置多個Apache Tomcat應用
- 16. 如何解析Apache配置文件,PHP配置,FTP服務器配置
- 17. 只有本地的apache web服務器
- 18. 配置服務
- 19. 設置Apache Web服務器
- 20. 如何在Apache HTTP服務器配置中設置HTTP_CF_CONNECTING_IP
- 21. 由nginx或apache服務的Yii站點只服務主頁
- 22. 將Apache服務器配置爲使用特定的OpenSSL引擎
- 23. 配置Apache服務器代理SSL連接的麻煩
- 24. 配置Apache網絡服務器的帶寬
- 25. Apache + Mongrel Cluster =錯誤的服務器配置!
- 26. 如何配置運行Mac OS X的Apache服務器?
- 27. 最大併發會話的Apache服務器配置。
- 28. 如何配置Apache以服務已壓縮的文件?
- 29. Apache配置發送子目錄到不同的服務器 - mod_proxy
- 30. 在我的Apache服務器上配置SMTP功能
這似乎沒有工作。我把VirtualHost作爲第一個虛擬主機,而Apache一直在爲其他服務器提供服務 - 在我的例子中,我是這麼做的(也是第一個使用ServerName的服務器)。 – smares
您可以使用'apache2ctl -S'(ubuntu,debian)或類似的方式列出您的VirtualHost配置,以確保配置符合您的想象。 – mrjink