溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

httpd虛擬主機(jī)及通過(guò)虛擬主機(jī)查看服務(wù)器狀態(tài)

發(fā)布時(shí)間:2020-06-19 04:25:53 來(lái)源:網(wǎng)絡(luò) 閱讀:684 作者:Nicky_Zheng 欄目:建站服務(wù)器

httpd虛擬主機(jī)的作用:可以將多個(gè)站點(diǎn)綁定在同一個(gè)IP上,也可在同一主機(jī)上將多個(gè)網(wǎng)站綁定在多個(gè)IP上;

虛擬主機(jī)可以根據(jù)端口綁定,也可基于IP綁定,示例如下:

 www.a.com --> 10.1.1.100:80
 www.b.net --> 10.1.1.100:808
 www.c.org --> 10.1.1.100:8080

 www.a.com --> 10.1.1.100
 www.b.net  --> 10.1.1.101
 www.c.org --> 10.1.1.102

以上兩種也可以混合使用;亦可多個(gè)域名共用一個(gè)IP及端口,此種情況下需要dns上將多個(gè)域名映射到同一個(gè)IP地址。


配置虛擬主機(jī)(以CentOS 7為例):

Apache httpd配置文件:

    主配置文件:

    /etc/httpd/conf/httpd.conf
    /etc/httpd/conf.d/*conf               #也可作為主配置文件的一部分

1、安裝服務(wù):

    yum -y install httpd

2、備份主配置文件并修改,以便后續(xù)開(kāi)啟虛擬主機(jī):

  vim /etc/httpd/conf/httpd.conf,注釋掉默認(rèn)的網(wǎng)頁(yè)文件路徑
    # DocumentRoot "/var/www"---> httpd網(wǎng)頁(yè)文件默認(rèn)路徑


3、找到#ServerName www.example.com:80,添加一下內(nèi)容:

ServerName localhost:80 #添加之后httpd服務(wù)啟動(dòng)時(shí)將不會(huì)嘗試使用DNS服務(wù)器解析本機(jī)hostname

4、在/etc/httpd/conf.d/新建虛擬主機(jī)配置文件,方便后續(xù)管理,不用的時(shí)候刪除即可

vim /etc/httpd/conf.d/vhosts.conf

  4.1 如果使用基于端口的方式,則

      Listen 808                     #監(jiān)聽(tīng)需要啟用的端口
      <VirtualHost 10.1.1.100:80>
          ServerName www.a.com
          DocumentRoot "/www/a.com/htdocs/"      #目錄提前創(chuàng)建好,并將index.html測(cè)試文件放入對(duì)應(yīng)的目錄
      </VirtualHost>
      <VirtualHost 10.1.1.100.808>
          ServerName www.b.net
          DocumentRoot "/www/b.net/htdocs/"
      </VirtualHost>

    4.2  如果使用基于IP的方式,則            

         <VirtualHost 10.1.1.100:80>
             ServerName www.a.com
             DocumentRoot "/www/a.com/htdocs/"      #目錄提前創(chuàng)建好,并將index.html測(cè)試文件放入對(duì)應(yīng)的目錄
          </VirtualHost>
      <VirtualHost 10.1.1.101:80>             
             ServerName www.b.net
             DocumentRoot "/www/b.net/htdocs/"
          </VirtualHost>

    4.3 如果使用FQDN的方式,則(此種方法主要靠DNS服務(wù)器將多個(gè)域名和IP做綁定)     

          <VirtualHost 10.1.1.100:80>
           ServerName www.a.com
           DocumentRoot "/www/a.com/htdocs/"
          </VirtualHost>   
          <VirtualHost 10.1.1.100:80>
           ServerName www.a.com
           DocumentRoot "/www/a.com/htdocs/"
          </VirtualHost>

注:在修改httpd的配置文件后,請(qǐng)使用httpd -t檢查配置文件,沒(méi)問(wèn)題再重啟服務(wù)


可能出現(xiàn)的問(wèn)題,及解決辦法

1、經(jīng)過(guò)上述配置,虛擬主機(jī)可能存在不能訪問(wèn)的問(wèn)題,請(qǐng)關(guān)閉SELinux及iptables;

   SElinux 關(guān)閉方法:
    setenforce 0        #臨時(shí)關(guān)閉
    vim /etc/selinux/config  #需要重啟
        SELINUX=disabled
   SELinux查看方法:
    getenforce
    disable            #處于關(guān)閉裝填
 CentOS 7防火墻關(guān)閉方法:
    systemctl disable firewalld.service


2、如果此時(shí)仍不能訪問(wèn),提示路徑不能訪問(wèn)的forbidden錯(cuò)誤,在虛擬主機(jī)配置文件中加入以下內(nèi)容:

<Directory "/www/"> #可參考主配置文件中針對(duì)默認(rèn)路徑權(quán)限的配置案例,此處的路徑為虛擬主機(jī)網(wǎng)頁(yè)文件路徑
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

注:網(wǎng)頁(yè)文件默認(rèn)不允許訪問(wèn)

添加之后,httpd -t檢查下語(yǔ)法錯(cuò)誤,沒(méi)問(wèn)題的話重啟服務(wù)即可,此時(shí)虛擬主機(jī)應(yīng)能正常訪問(wèn);


server-status及身份認(rèn)證

1、如果需要通過(guò)某虛擬主機(jī)獲取服務(wù)器狀態(tài),并需要認(rèn)證身份,則添加以下內(nèi)容:

<VirtualHost 10.1.1.100:80>
ServerName www.a.com
DocumentRoot "/www/a.com/htdocs/"
        <Location "/server-status">
            SetHandler server-status
            AuthType Basic
            AuthName "ENTER YOUR ID"
            AuthUserFile /etc/httpd/conf/.htpasswd   #指明認(rèn)證所需的文件路徑
            Require valid-user    #只要用戶存在即可,亦可直接指定用戶名
        </Location>
</VirtualHost>

2、使用htpasswd -c -m /etc/httpd/conf/.htpasswd  USERNAME 創(chuàng)建用戶名及設(shè)定密碼

注:-c命令只在第一次創(chuàng)建用戶時(shí)使用,用戶生成密碼文件



向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI