Apache VirtualHost配置


以lampp環境為例子,其他環境只是配置文件的路徑不同。

先要在   lampp/etc/httpd.conf ( 這個是Apache 總的配置文件)中,將虛擬路徑的注釋去掉。

#Include etc/extra/httpd-vhosts.conf

使httpd-vhosts.conf文件起作用,或者直接在httpd.conf中寫配置也可以,但不建議這么做。

相關的配置有:Listen  NameVirtualHost  <VirtualHost>

1.  Listen  要監聽的端口,多個端口,要寫多個Listen;否則Apache啟動的時候,不會啟動相應的套接字。

   比如  

           Listen 80

           Listen 8080

2.NameVirtualHost 如果沒有這個,<VirtualHost>標簽就沒什么作用。

 (感謝okiwill的指正,這里特指基於域名訪問的情況,若是基於IP訪問的,以第一個指定IP的VirtualHost為准,每個IP可以單獨指定)

  一個NameVirtualHost 可以對用多個<VirtualHost>,每個<VirtualHost>必須有自己的NameVirtualHost(我猜的)

   NameVirutalHost *:80

   制定這個主機的IP和端口,如果服務器上有多個IP,就可以制定某個IP的某個端口是哪個 主機。

    (新版的Apache已經去除了NameVirtualHost 這個配置,因為確實沒什么用,參數在VirtualHost中都已經指明了)

3  最關鍵的VirtualHost

   重要:Apache 在接受到請求時,首先會默認第一個VirtualHost,然后再找匹配的,如果沒有匹配的,就是第一個VirtualHost起作用。

   因此在httpd.conf中,將<Dicrectory />(這個是所有目錄的默認配置)

   和 <Direcotry /opt/lampp/htdocs>的權限,都是deny from all.作為默認。

   所以,我的第一個VirtualHost是

  <VirtualHost *:80>

   ServerName *

   DocumentRoot </opt/lampp/htdocs/guest>

   <Directory /opt/lampp/htdocs/guest>

     Order deny,allow

     Allow from all

   </Direcotry>

  <VirtualHost/>

后面的,依次添加就可以

  <VirtualHost *:80>

   ServerName www.myweb1.com

   DocumentRoot </opt/lampp/htdocs/myweb1>

   <Directory /opt/lampp/htdocs/myweb1>

     Order deny,allow

     Allow from all

   </Direcotry>

  <VirtualHost/>

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM