您好,登錄后才能下訂單哦!
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í)使用,用戶生成密碼文件
免責(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)容。