您好,登錄后才能下訂單哦!
為什么需要用到虛擬主機:
首先它是一個主機,他有操作系統
我們還需要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>
<h2>magedu.com</h2>
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
<h2>Default</h2>
重啟 注意在編輯的時候 default 盡量放在上邊
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。