apache 虛擬主機

爲什麼需要用到虛擬主機:

   首先它是一個主機,他有操作系統

   我們還需要IP地址 可是對於那些小站點而講,是及其浪費的。所以我們期望能夠在一臺主機上虛擬出多個主機,能夠服務於多個不同的站點


###################################

apache :

     中心主機:section2

     虛擬主機:3

         同一個IP 主機名不同

               www.magedu.com

               www.a.org

虛擬主機的定義:得先取消中心主機,即註釋DocumentRoot

   <VirtualHost Host>

   </VirtualHost>

1、基於IP,Host的寫法

     HOST

       IP1:80

       IP2:80

2、基於端口:

     HOST

       IP:80

       IP:8080

3、基於域名:

      *:80

   ServerName 不能相同  

#####################################

具體實現方法:基於IP認證

   1、取消中心主機 #DocumentRoot

   2、cd /etc/httpd/conf.d;;vim virtual.conf

   3、

        <VirtualHost 192.168.9.247:80>

             ServerName hello.magedu.com

             DocumentRoot "/www/magedu.com"

        </VirtualHost>


        <VirtualHost 192.168.9.248:80>

             ServerName www.a.org

             DocumentRoot "/www/a.org"

        </VirtualHost>

  4、httpd -t檢查語法是否有錯誤

  5、mkdir -pv /www/{magedu.com,a.org}創建目錄

  6、cd magedu.com ;;vim index.html

  7、編輯

     <title>MageEdu</title>

     <h1>magedu.com</h1>

  8、ip addr add 192.168.9.248/16 dev eth0 爲主機再加一個IP地址

  9、ip addr show 顯示出來

##################################

基於端口認證:

  1、追加編輯conf.d下的配置文件;;;你會發現已經有了247這個IP 但是端口不同

        <VirtualHost 192.168.9.247:8080>

             ServerName www.b.net

             DocumentRoot "/WWW/b.net"

        </VirtualHost>

  2、編輯主配置文件/etc/httpd/conf/httpd.conf

        Listen 80

        Listen 8080

  3、編輯/www/b.net/index.html 

  4、重啓即可

#################################################################

基於名稱的虛擬主機

  0、vim /etc/httpd/conf/httpd.conf

  1、NameVirtualHost *:80 解除註釋    意思是80端口上的所有IP 

  3、vim /etc/httpd/conf/virtual

  4、在第一行加 NameVirtualHost 192.168.9.248:80

        <VirtualHost 192.168.9.248:80>

             ServerName www.a.org

             DocumentRoot "/www/a.org"

        </VirtualHost>


        <VirtualHost 192.168.9.248:80>

             ServerName www.b.gov

             DocumentRoot "/www/b.gov"

        </VirtualHost>

############################################333333333

還可以自定義指定日誌存放位置格式

        <VirtualHost 192.168.9.248:80>

             ServerName www.b.gov

             DocumentRoot "/www/b.gov"

             CustomLog/var/httpd/magedu.com/access_log combined

        </VirtualHost>

  只要有權限,重啓後就會自動創建這個目錄

#########################################################33

讓a.org拒絕192.168.9.226這個地址訪問

        <VirtualHost 192.168.9.248:80>

             ServerName www.a.org

             DocumentRoot "/www/a.org"

             <Directory "/www/d.gov">

                 Options none

                 AllowOverride none

                 Order deny,allow

                 Deny from 192.168.9.226

             </Directory>

        </VirtualHost>

     保存    httpd -t 檢查是否有語法錯誤   重啓 

#####################################################

讓a.org需要輸入用戶名密碼才能登陸 

        <VirtualHost 192.168.9.248:80>

             ServerName www.a.org

             DocumentRoot "/www/a.org"

             CustomLog /var/log/httpd/a.org/access_log combined

             <Directory "/www/a.org">

                    Options none

                    AllowOverride authconfig

                    AuthType basic

                    AuthName "Restrict area."

                    AuthUserFile "/etc/httpd/.htpasswd"

                    Required valid-user

             </Directory>

        </VirtualHost>

保存;;httpd -t 檢查是否有語法錯誤

htpasswd -c -m /etc/httpd/.htpasswd tom添加tom用戶

再添加用戶就把-c去掉

htpasswd  -m /etc/httpd/.htpasswd hadoop

########################################################

如果訪問一個壓根不存在的一個虛擬主機: 

<VirtualHost 192.168.9.247:80>

        ServerName _default_

        DocumentRoot "/www/default"

</VirtualHost>

mkdir /www/default

vim /www/default/index.html

    <h1>Default</h1>

重啓   注意在編輯的時候  default  儘量放在上邊



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章