溫馨提示×

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

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

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

發(fā)布時(shí)間:2020-06-13 01:33:53 來(lái)源:網(wǎng)絡(luò) 閱讀:921 作者:wx5d2c2d660c282 欄目:系統(tǒng)運(yùn)維

虛擬Web主機(jī)

在同一臺(tái)物理服務(wù)器中運(yùn)行多個(gè)Web站點(diǎn),其中每一一個(gè)站點(diǎn)并不獨(dú)立占用一臺(tái)真正的計(jì)算機(jī)。

httpd支持的虛擬主機(jī)類型

  • 基于域名的虛擬主機(jī)
  • 基于IP地址的虛擬主機(jī)
  • 基于端口的虛擬主機(jī)

構(gòu)建虛擬主機(jī)------基于域名

(1)安裝bind、httpd服務(wù)。

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(2)進(jìn)入named服務(wù)的主配置文件,將下圖兩個(gè)位置改為“any”。

[root@localhost ~]# vim /etc/named.conf

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(3)進(jìn)入named服務(wù)的區(qū)域配置文件,添加兩個(gè)域名的區(qū)域信息。

[root@localhost ~]# vim /etc/named.rfc1912.zones

zone "aaa.com" IN {
        type master;
        file "aaa.com.zone";
        allow-update { none; };
};

zone "bbb.com" IN {
        type master;
        file "bbb.com.zone";
        allow-update { none; };
};

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(4)進(jìn)入“/var/named/”目錄,保留權(quán)限復(fù)制一份“named.localhost”區(qū)域數(shù)據(jù)配置文件,命名為“aaa.com.zone”,然后對(duì)其進(jìn)行修改。

[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# cp -p named.localhost  aaa.com.zone
[root@localhost named]# 

[root@localhost named]# vim aaa.com.zone 
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       192.168.52.133

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(5)再保留權(quán)限復(fù)制一份“aaa.com.zone”文件,命名為“bbb.com.zone”,不用進(jìn)行修改。然后開啟named服務(wù),關(guān)閉防火墻和增強(qiáng)性安全功能。

[root@localhost named]# cp -p aaa.com.zone bbb.com.zone
[root@localhost named]# systemctl start named
[root@localhost named]# 
[root@localhost named]# systemctl stop firewalld.service 
[root@localhost named]# setenforce 0
[root@localhost named]# 

(6)再開一臺(tái)win10虛擬機(jī),將其DNS服務(wù)器的IP地址,設(shè)置為剛才Linux系統(tǒng)的IP地址。

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(7)用win10主機(jī)去測(cè)試DNS服務(wù)能否解析,解析成功。

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(8)進(jìn)入“/etc/httpd/conf”目錄,創(chuàng)建一個(gè)“extra/”目錄,然后進(jìn)入“extra/”目錄,用vim編輯器,新建一個(gè)配置文件“vhost.conf”,在配置文件里輸入以下內(nèi)容。

[root@localhost named]# cd /etc/httpd/conf
[root@localhost conf]# ls
httpd.conf  magic
[root@localhost conf]# mkdir extra
[root@localhost conf]# ls
extra  httpd.conf  magic
[root@localhost conf]# cd extra/
[root@localhost extra]# vim vhost.conf

<VirtualHost *:80>
  DocumentRoot "/var/www/html/aaa/"
  ServerName www.aaa.com
  ErrorLog "logs/www.aaa.com.error_log"
  CustomLog "logs/www.aaa.com.access_log" common
  <Directory "/var/www/html">
    Require all granted
  </Directory>
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot "/var/www/html/bbb/"
  ServerName www.bbb.com
  ErrorLog "logs/www.bbb.com.error_log"
  CustomLog "logs/www.bbb.com.access_log" common
  <Directory "/var/www/html">
    Require all granted
  </Directory>
</VirtualHost>

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(9)進(jìn)入“/var/www/html/”創(chuàng)建兩個(gè)目錄“aaa/”、“bbb/”。

[root@localhost extra]# 
[root@localhost extra]# cd /var/www/html/
[root@localhost html]# ls
[root@localhost html]# mkdir aaa bbb
[root@localhost html]# ls
aaa  bbb
[root@localhost html]# 

(10)進(jìn)入“aaa/”目錄,新建一個(gè)站點(diǎn)首頁(yè)文件,內(nèi)容如下:

[root@localhost html]# cd aaa
[root@localhost aaa]# ls
[root@localhost aaa]# vim index.html

<h2>this is aaa web</h2>

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(11)進(jìn)入“bbb/”目錄,新建一個(gè)站點(diǎn)首頁(yè)文件,內(nèi)容如下:

[root@localhost aaa]# cd ../bbb
[root@localhost bbb]# ls
[root@localhost bbb]# vim index.html

<h2>this is bbb web</h2>

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(12)進(jìn)入httpd服務(wù)的主配置文件,在末行將我們新建的配置文件寫進(jìn)主配置文件,然后啟動(dòng)httpd服務(wù)。

[root@localhost bbb]# vim /etc/httpd/conf/httpd.conf 

Include conf/extra/vhost.conf

[root@localhost bbb]# systemctl start httpd
[root@localhost bbb]# 

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(13)用win10 主機(jī)去分別訪問(wèn)兩個(gè)域名,都能訪問(wèn)成功。

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

構(gòu)建虛擬主機(jī)------基于端口

(1)在上一個(gè)實(shí)驗(yàn)的基礎(chǔ)上,進(jìn)入配置文件“vhost.conf”,添加一個(gè)“www.aaa.com”域名的8080端口。

[root@localhost bbb]# vim /etc/httpd/conf/extra/vhost.conf 

<VirtualHost *:80>
  DocumentRoot "/var/www/html/aaa/"
  ServerName www.aaa.com
  ErrorLog "logs/www.aaa.com.error_log"
  CustomLog "logs/www.aaa.com.access_log" common
  <Directory "/var/www/html">
    Require all granted
  </Directory>
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot "/var/www/html/bbb/"
  ServerName www.bbb.com
  ErrorLog "logs/www.bbb.com.error_log"
  CustomLog "logs/www.bbb.com.access_log" common
  <Directory "/var/www/html">
    Require all granted
  </Directory>
</VirtualHost>

<VirtualHost *:8080>
  DocumentRoot "/var/www/html/aaa02/"
  ServerName www.aaa.com
  ErrorLog "logs/www.aaa02.com.error_log"
  CustomLog "logs/www.aaa02.com.access_log" common
  <Directory "/var/www/html">
    Require all granted
  </Directory>
</VirtualHost>

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(2)進(jìn)入“/var/www/html”目錄,新建一個(gè)“aaa02”目錄,進(jìn)入“aaa02”目錄,新建一個(gè)站點(diǎn)首頁(yè)文件,內(nèi)容如下:

[root@localhost bbb]# cd ../
[root@localhost html]# mkdir aaa02
[root@localhost html]# cd aaa02/
[root@localhost aaa02]# vim index.html

<h2>this is aaa02 web</h2>

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(3)進(jìn)入httpd服務(wù)主配置文件,添加監(jiān)聽(tīng)端口,同時(shí)將IPv6的端口的監(jiān)聽(tīng)注銷。重啟httpd服務(wù)。

[root@localhost aaa02]# vim /etc/httpd/conf/httpd.conf

Listen 192.168.52.133:80
Listen 192.168.52.133:8080
#Listen 80

[root@localhost aaa02]# systemctl restart httpd
[root@localhost aaa02]# 

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(4)再次用win10主機(jī)訪問(wèn)兩個(gè)端口不同的域名,訪問(wèn)成功。

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

構(gòu)建虛擬主機(jī)------基于IP

(1)給Linux主機(jī)添加一塊網(wǎng)卡,查看IP地址。

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(2)進(jìn)入配置文件“vhost.conf”,進(jìn)行如下輸入:

[root@localhost aaa02]# vim /etc/httpd/conf/extra/vhost.conf

<VirtualHost 192.168.52.133:80>
  DocumentRoot "/var/www/html/aaa/"
  ErrorLog "logs/www.aaa.com.error_log"
  CustomLog "logs/www.aaa.com.access_log" common
  <Directory "/var/www/html">
    Require all granted
  </Directory>
</VirtualHost>

<VirtualHost 192.168.52.139:80>
  DocumentRoot "/var/www/html/aaa02/"
  ErrorLog "logs/www.aaa02.com.error_log"
  CustomLog "logs/www.aaa02.com.access_log" common
  <Directory "/var/www/html">
    Require all granted
  </Directory>
</VirtualHost>

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(3)分別對(duì)“aaa”站點(diǎn)與“aaa02”站點(diǎn)的主頁(yè)文件進(jìn)行如下修改:

[root@localhost aaa02]# cd ../aaa
[root@localhost aaa]# vim index.html 

<h2>this is 133 aaa web</h2>

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

[root@localhost aaa]# cd ../aaa02
[root@localhost aaa02]# vim index.html 

<h2>this is 139 aaa02 web</h2>

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(4)進(jìn)入httpd主配置文件,進(jìn)行端口的添加與注釋。然后重啟httpd服務(wù)。

[root@localhost aaa02]# vim /etc/httpd/conf/httpd.conf 

Listen 192.168.52.133:80
Listen 192.168.52.139:80
#Listen 192.168.52.133:8080
#Listen 80

[root@localhost aaa02]# systemctl restart httpd
[root@localhost aaa02]# 

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(5)用win10主機(jī)去訪問(wèn)兩個(gè)不同IP地址的站點(diǎn),訪問(wèn)成功。但是只能用IP地址訪問(wèn),一般情況訪問(wèn)網(wǎng)站用的是域名,接下來(lái)我們進(jìn)行域名訪問(wèn)不同IP地址站點(diǎn)的配置。

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(6)首先在配置文件“vhost.conf”中添加,域名“ServerName”。

[root@localhost aaa02]# vim /etc/httpd/conf/extra/vhost.conf

<VirtualHost 192.168.52.133:80>
  DocumentRoot "/var/www/html/aaa/"
  ServerName www.aaa.com
  ErrorLog "logs/www.aaa.com.error_log"
  CustomLog "logs/www.aaa.com.access_log" common
  <Directory "/var/www/html">
    Require all granted
  </Directory>
</VirtualHost>

<VirtualHost 192.168.52.139:80>
  DocumentRoot "/var/www/html/aaa02/"
  ServerName www.aaa02.com
  ErrorLog "logs/www.aaa02.com.error_log"
  CustomLog "logs/www.aaa02.com.access_log" common
  <Directory "/var/www/html">
    Require all granted
  </Directory>
</VirtualHost>

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(7)進(jìn)入named服務(wù)的區(qū)域配置文件中,添加一個(gè)“aaa02”的區(qū)域信息。

[root@localhost aaa02]# vim /etc/named.rfc1912.zones 

zone "aaa.com" IN {
        type master;
        file "aaa.com.zone";
        allow-update { none; };
};

zone "aaa02.com" IN {
        type master;
        file "aaa02.com.zone";
        allow-update { none; };
};

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(8)進(jìn)入“/var/named/”目錄,保留權(quán)限復(fù)制一份“aaa.com.zone”文件,命名為“aaa02.com.zone”,同時(shí)對(duì)其進(jìn)行如下修改:

[root@localhost aaa02]# cd /var/named/
[root@localhost named]# ls
aaa.com.zone  data     named.ca     named.localhost  slaves
bbb.com.zone  dynamic  named.empty  named.loopback
[root@localhost named]# cp -p aaa.com.zone aaa02.com.zone
[root@localhost named]# vim aaa02.com.zone 

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       192.168.52.139

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(9)再次用win10主機(jī),通過(guò)域名去訪問(wèn)兩個(gè)不同IP地址的站點(diǎn),訪問(wèn)成功。

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

訪問(wèn)權(quán)限控制

(1)查看win10主機(jī)的IP地址。

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(2)在配置文件“vhost.conf”中添加拒絕win10主機(jī)訪問(wèn),“www.aaa.com”域名規(guī)則。然后重啟服務(wù)

[root@localhost ~]# vim /etc/httpd/conf/extra/vhost.conf

<VirtualHost 192.168.52.133:80>
  DocumentRoot "/var/www/html/aaa/"
  ServerName www.aaa.com
  ErrorLog "logs/www.aaa.com.error_log"
  CustomLog "logs/www.aaa.com.access_log" common
  <Directory "/var/www/html">
    <RequireAll>
      Require not ip 192.168.52.129
      Require all granted
    </RequireAll>
  </Directory>
</VirtualHost>

<VirtualHost 192.168.52.139:80>
  DocumentRoot "/var/www/html/aaa02/"
  ServerName www.aaa02.com
  ErrorLog "logs/www.aaa02.com.error_log"
  CustomLog "logs/www.aaa02.com.access_log" common
  <Directory "/var/www/html">
    Require all granted
  </Directory>
</VirtualHost>

[root@localhost ~]# systemctl restart httpd

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(3)清除win10主機(jī)瀏覽器的歷史記錄,然后分別訪問(wèn)兩個(gè)域名。此時(shí)“www.aaa.com”域名已經(jīng)訪問(wèn)不到首頁(yè)了,只能看到Apache默認(rèn)的頁(yè)面。

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(4)用“htpasswd”命令創(chuàng)建用戶認(rèn)證數(shù)據(jù)庫(kù),“-c”選項(xiàng)是用來(lái)創(chuàng)建文件“passwd”的,如果文件已經(jīng)存在就不用加。

[root@localhost ~]# cd /etc/httpd/conf
[root@localhost conf]# ls
extra  httpd.conf  magic
[root@localhost conf]# 
[root@localhost conf]# htpasswd -c /etc/httpd/conf/passwd test01
New password: 
Re-type new password: 
Adding password for user test01
[root@localhost conf]# htpasswd /etc/httpd/conf/passwd test02
New password: 
Re-type new password: 
Adding password for user test02
[root@localhost conf]# cat passwd 
test01:$apr1$72w08g5z$26fEl6Yqym/nPi08lhrYj/
test02:$apr1$1sZRVmZ/$Qs2BrdK/SJoZwRe1sIXUQ/
[root@localhost conf]# 

(5)在配置文件“vhost.conf”中,給“www.aaa02.com”域名添加身份驗(yàn)證訪問(wèn)規(guī)則,然后重啟服務(wù)。

[root@localhost conf]# vim extra/vhost.conf

<VirtualHost 192.168.52.133:80>
  DocumentRoot "/var/www/html/aaa/"
  ServerName www.aaa.com
  ErrorLog "logs/www.aaa.com.error_log"
  CustomLog "logs/www.aaa.com.access_log" common
  <Directory "/var/www/html">
    <RequireAll>
      Require not ip 192.168.52.129
      Require all granted
    </RequireAll>
  </Directory>
</VirtualHost>

<VirtualHost 192.168.52.139:80>
  DocumentRoot "/var/www/html/aaa02/"
  ServerName www.aaa02.com
  ErrorLog "logs/www.aaa02.com.error_log"
  CustomLog "logs/www.aaa02.com.access_log" common
  <Directory "/var/www/html">
    AuthName "DocumentRoot"
    AuthType Basic
    AuthUserFile /etc/httpd/conf/passwd
    Require valid-user
  </Directory>
</VirtualHost>

[root@localhost conf]# systemctl restart httpd
[root@localhost conf]# 

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

(6)清除win10主機(jī)的瀏覽器緩存,然后再次訪問(wèn)“www.aaa02.com”域名,結(jié)果彈出身份驗(yàn)證。輸入用戶和密碼后訪問(wèn)成功。

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

Apache服務(wù)配置虛擬主機(jī)(基于域名、端口、IP地址)與簡(jiǎn)單訪問(wèn)權(quán)限管理

向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