httpd虛擬主機的作用:可以將多個站點綁定在同一個IP上,也可在同一主機上將多個網站綁定在多個IP上;
虛擬主機可以根據端口綁定,也可基于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以上兩種也可以混合使用;亦可多個域名共用一個IP及端口,此種情況下需要dns上將多個域名映射到同一個IP地址。
配置虛擬主機(以CentOS 7為例):
Apache httpd配置文件:
主配置文件:
/etc/httpd/conf/httpd.conf /etc/httpd/conf.d/*conf #也可作為主配置文件的一部分1、安裝服務:
yum -y install httpd2、備份主配置文件并修改,以便后續開啟虛擬主機:
vim /etc/httpd/conf/httpd.conf,注釋掉默認的網頁文件路徑 # DocumentRoot "/var/www"---> httpd網頁文件默認路徑3、找到#ServerName www.example.com:80,添加一下內容:
ServerName localhost:80 #添加之后httpd服務啟動時將不會嘗試使用DNS服務器解析本機hostname4、在/etc/httpd/conf.d/新建虛擬主機配置文件,方便后續管理,不用的時候刪除即可
vim /etc/httpd/conf.d/vhosts.conf4.1 如果使用基于端口的方式,則
Listen 808 #監聽需要啟用的端口 <VirtualHost 10.1.1.100:80> ServerName www.a.com DocumentRoot "/www/a.com/htdocs/" #目錄提前創建好,并將index.html測試文件放入對應的目錄 </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/" #目錄提前創建好,并將index.html測試文件放入對應的目錄 </VirtualHost> <VirtualHost 10.1.1.101:80> ServerName www.b.net DocumentRoot "/www/b.net/htdocs/" </VirtualHost>4.3 如果使用FQDN的方式,則(此種方法主要靠DNS服務器將多個域名和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的配置文件后,請使用httpd -t檢查配置文件,沒問題再重啟服務
可能出現的問題,及解決辦法
1、經過上述配置,虛擬主機可能存在不能訪問的問題,請關閉SELinux及iptables;
SElinux 關閉方法: setenforce 0 #臨時關閉 vim /etc/selinux/config #需要重啟 SELINUX=disabled SELinux查看方法: getenforce disable #處于關閉裝填 CentOS 7防火墻關閉方法: systemctl disable firewalld.service2、如果此時仍不能訪問,提示路徑不能訪問的forbidden錯誤,在虛擬主機配置文件中加入以下內容:
<Directory "/www/"> #可參考主配置文件中針對默認路徑權限的配置案例,此處的路徑為虛擬主機網頁文件路徑 AllowOverride None # Allow open access: Require all granted </Directory>注:網頁文件默認不允許訪問
添加之后,httpd -t檢查下語法錯誤,沒問題的話重啟服務即可,此時虛擬主機應能正常訪問;
server-status及身份認證
1、如果需要通過某虛擬主機獲取服務器狀態,并需要認證身份,則添加以下內容:
<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 #指明認證所需的文件路徑 Require valid-user #只要用戶存在即可,亦可直接指定用戶名 </Location> </VirtualHost>2、使用htpasswd -c -m /etc/httpd/conf/.htpasswd USERNAME 創建用戶名及設定密碼
注:-c命令只在第一次創建用戶時使用,用戶生成密碼文件
另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前文章:httpd虛擬主機及通過虛擬主機查看服務器狀態-創新互聯
分享網址:http://m.kartarina.com/article16/ccipdg.html
成都網站建設公司_創新互聯,為您提供面包屑導航、電子商務、搜索引擎優化、響應式網站、微信公眾號、微信小程序
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯