【零基礎(chǔ)學(xué)云計算】企業(yè)常用Centos 7.4--虛擬主機基于域名,端口,IP,Apache訪問控
時間:2023-07-14 07:00:01 | 來源:網(wǎng)站運營
時間:2023-07-14 07:00:01 來源:網(wǎng)站運營
【零基礎(chǔ)學(xué)云計算】企業(yè)常用Centos 7.4--虛擬主機基于域名,端口,IP,Apache訪問控制:
構(gòu)建虛擬主機
一共支持三種虛擬主機類型
企業(yè)常用的是第一種基于域名的虛擬主機
基于IP地址的虛擬主機,一臺物理主機上需要兩個網(wǎng)卡
基于端口的虛擬主機
構(gòu)建虛擬主機之基于域名
環(huán)境需求:一臺linux作為DNS和web服務(wù)器,一臺WIN10客戶端作為測試在我們的Linux先裝兩個 軟件包[root@localhost ~]# yum install bind httpd -y
已安裝: bind.x86_64 32:9.11.4-9.P2.el7 httpd.x86_64 0:2.4.6-90.el7.centos
作為依賴被安裝: apr.x86_64 0:1.4.8-5.el7
apr-util.x86_64 0:1.5.2-6.el7
bind-export-libs.x86_64 32:9.11.4-9.P2.el7
httpd-tools.x86_64 0:2.4.6-90.el7.centos
mailcap.noarch 0:2.1.41-2.el7
作為依賴被升級: bind-libs.x86_64 32:9.11.4-9.P2.el7
bind-libs-lite.x86_64 32:9.11.4-9.P2.el7
bind-license.noarch 32:9.11.4-9.P2.el7
bind-utils.x86_64 32:9.11.4-9.P2.el7
dhclient.x86_64 12:4.2.5-77.el7.centos
dhcp-common.x86_64 12:4.2.5-77.el7.centos
dhcp-libs.x86_64 12:4.2.5-77.el7.centos
配置DNS主配置文件需要改兩處
[root@localhost ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; //監(jiān)聽所有地址
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; }; //允許其他所有主機可以進行解析
配置DNS區(qū)域配置文件我們加入兩個需要解析的域名區(qū)域配置
在正向解析上復(fù)制5行
[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "accp.com" IN { //你需要解析的域名
type master;
file "Domain Name Marketplace"; //區(qū)域數(shù)據(jù)配置文件
allow-update { none; };
};
zone "kgc" IN {
type master;
file "Domain Name Marketplace";
allow-update { none; };
};
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
配置DNS區(qū)域數(shù)據(jù)配置文件[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
data dynamic named.ca - 最佳的named 來源和相關(guān)信息。 named.empty named.localhost named.loopback slaves
[root@localhost named]# cp -p named.localhost Domain Name Marketplace //把模板復(fù)制到數(shù)據(jù)區(qū)域配置文件中
[root@localhost named]# vim Domain Name Marketplace //配置
$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.136.136 //添加域名解析的地址
[root@localhost named]# cp -p Domain Name Marketplace Domain Name Marketplace
//這個只要復(fù)制過來不需要過來,我們是基于不同的域名解析
開啟服務(wù)[root@localhost named]# systemctl stop firewalld.service
[root@localhost named]# setenforce 0
[root@localhost named]# systemctl start named
到win10客戶端去測試能不能解析到地址添加虛擬主機子配置文件,不要寫在主配置文件中,系統(tǒng)加載會變慢。[root@localhost named]# cd /etc/httpd/
[root@localhost httpd]# ls
conf conf.d conf.modules.d logs modules run
[root@localhost httpd]# cd conf
[root@localhost conf]# ls
httpd.conf magic
[root@localhost conf]# mkdir extra //創(chuàng)建一個擴展的文件夾,里面放入子配置文件,方便我們以后管理
[root@localhost conf]# ls
extra httpd.conf magic
[root@localhost conf]# cd extra/
配置子配置文件[root@localhost extra]# vim vhost.conf
<VirtualHost *:80> //標(biāo)簽虛擬主機 ,*代表所有網(wǎng)絡(luò)
DocumentRoot "/var/www/html/accp/" //指定站點
ServerName www.accp.com //定義域名
ErrorLog "logs/www.accp.com.error_log" //網(wǎng)址要有日志文件,錯誤日志文件
Customlog "logs/www.accp.com.access_log" common //訪問日志文件
<Directory "/var/www/html"> //站點需要設(shè)置權(quán)限,讓所有網(wǎng)絡(luò)能訪問這個網(wǎng)頁
Require all granted
</Directory>
</VirtualHost> //結(jié)尾標(biāo)簽
<VirtualHost *:80>
DocumentRoot "/var/www/html/kgc/"
ServerName www.kgc.com
ErrorLog "logs/www.kgc.com.error_log"
Customlog "logs/www.kgc.com.access_log" common
<Directory "/var/www/html">
Require all granted
</Directory>
</VirtualHost>
~
在站點下創(chuàng)建兩個默認網(wǎng)頁[root@localhost httpd]# cd /var/www/html
[root@localhost html]# mkdier accp kgc //創(chuàng)建兩個站點目錄
[root@localhost html]# mkdir accp kgc
[root@localhost html]# ls
accp kgc
[root@localhost html]# cd accp
[root@localhost accp]# vim index.html //編輯網(wǎng)頁寫入內(nèi)容
h1>this is accp web</h1>
[root@localhost accp]# cd ../kgc/
[root@localhost kgc]# vim index.html
<h1>this is kgc web</h1>
在主配置文件中調(diào)用子配置文件[root@localhost kgc]# cd /etc/httpd/
[root@localhost httpd]# cd conf
[root@localhost conf]# ls
extra httpd.conf magic
[root@localhost conf]# vim httpd.conf
#Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
Include conf/extra/vhost.conf //調(diào)用子配置文件
啟用web服務(wù),并去win10客戶端去測試能不能基于不同域名獲得網(wǎng)頁虛擬主機之基于端口
子配置文件中在創(chuàng)建一個基于端口的虛擬主機[root@localhost conf]# cd extra/
[root@localhost extra]# vim vhost.conf
22 <VirtualHost *:8080> //端口加上8080
23 DocumentRoot "/var/www/html/kgc.port/"
24 ServerName www.kgc.port.com
25 ErrorLog "logs/www.kgc.port.com.error_log"
26 Customlog "logs/www.kgc.port.com.access_log" common
27 <Directory "/var/www/html">
28 Require all granted
29 </Directory>
30 </VirtualHost>
到站點目錄下,做一個端口的默認網(wǎng)頁[root@localhost extra]# cd /var/www/html/
[root@localhost html]# ls
accp kgc
[root@localhost html]# mkdir kgc.port
[root@localhost html]# cd kgc.port/
[root@localhost kgc.port]# vim index.html
<h1>this is kgc.port web</h1>
~
在主配置文件中開啟加入個監(jiān)聽地址[root@localhost kgc.port]# vim /etc/httpd/conf/httpd.conf
Listen 192.168.136.136:80
Listen 192.168.136.136:8080
#Listen 80
開啟服務(wù),查看端口有沒有被提供出來[root@localhost kgc.port]# systemctl restart httpd
[root@localhost kgc.port]# netstat -ntap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 192.168.136.136:8080 0.0.0.0:* LISTEN 59009/httpd
tcp 0 0 192.168.136.136:80 0.0.0.0:* LISTEN
用客戶端win10測試基于端口的不同訪問網(wǎng)頁80端口還是原來的網(wǎng)頁虛擬主機之基于IP
添加一塊網(wǎng)卡[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.136.136 netmask 255.255.255.0 broadcast 192.168.136.255
inet6 fe80::e3c7:14af:6e4d:7216 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:c9:dd:05 txqueuelen 1000 (Ethernet)
RX packets 101 bytes 10639 (10.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 113 bytes 12291 (12.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.136.138 netmask 255.255.255.0 broadcast 192.168.136.255
inet6 fe80::658e:4c2d:2273:9cf5 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:c9:dd:0f txqueuelen 1000 (Ethernet)
RX packets 108 bytes 14566 (14.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 42 bytes 5695 (5.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
到子配置文件中開始配置[root@localhost ~]# cd /etc/httpd/conf/extra/
[root@localhost extra]# ls
vhost.conf
[root@localhost extra]# vim vhost.conf
<VirtualHost 192.168.136.138:80> //“*”改成第二塊網(wǎng)卡的地址
2 DocumentRoot "/var/www/html/accp/"
3 ErrorLog "logs/www.accp.com.error_log"
4 Customlog "logs/www.accp.com.access_log" common
5 <Directory "/var/www/html">
6 Require all granted
7 </Directory>
8 </VirtualHost>
9
10
11 <VirtualHost 192.168.136.136:80> //改成第一塊網(wǎng)卡的地址
12 DocumentRoot "/var/www/html/accp02/" //重新在站點下寫一個網(wǎng)頁
13 ErrorLog "logs/www.accp02.com.error_log"
14 Customlog "logs/www.accp02.com.access_log" common
15 <Directory "/var/www/html">
16 Require all granted
17 </Directory>
18 </VirtualHost>
19
到站點下創(chuàng)建一個網(wǎng)頁內(nèi)容[root@localhost extra]# cd /var/www/html/
[root@localhost html]# mkdir accp02
[root@localhost html]# cd accp02
[root@localhost accp02]# vim index.html
<h1>this is 136 accp02 web</h1>
~
~
~
[root@localhost accp02]# vim ../accp/index.html
<h1>this is 128 accp web</h1>
~
~
~
在主配置文件中增加監(jiān)聽138的地址,開啟服務(wù)#prevent Apache from glomming onto all bound IP addresses.
Listen 192.168.136.136:80
Listen 192.168.136.138:80
#Listen 192.168.136.136:8080
#Listen 80
[root@localhost extra]# systemctl status httpd
去客戶端測試一下,記得我們之前給客戶端指定的dns解析地址弄到自動獲取,不然你的客戶端無法上網(wǎng),無法訪問網(wǎng)址Aapache訪問權(quán)限控制(客戶機權(quán)限控制)到子配置文件,也叫容器,當(dāng)中做客戶機訪問權(quán)限控制,像當(dāng)于黑白名單,這個容器,系統(tǒng)的所有命令都會去實現(xiàn),不會像ACL訪問控制列表從上到下逐條匹配識別命令。[root@localhost ~]# cd /etc/httpd/conf/extra/
[root@localhost extra]# ls
vhost.conf
[root@localhost extra]# vim vhost.conf
<VirtualHost 192.168.136.138:80>
DocumentRoot "/var/www/html/accp/"
ErrorLog "logs/www.accp.com.error_log"
Customlog "logs/www.accp.com.access_log" common
<Directory "/var/www/html">
<RequireAll> //要加入子容器的標(biāo)簽
Require not ip 192.168.136.137 //拒絕這個地址訪問,也可以拒絕網(wǎng)段比如 Require not ip 192.168.136.0/24
Require all granted
</RequireAll> //結(jié)尾標(biāo)簽
</Directory>
</VirtualHost>
[root@localhost extra]# systemctl restart httpd //重啟服務(wù)
到客戶端去測試一下因為做了訪問控制所以,只能訪問web服務(wù)的默認網(wǎng)站用戶登錄訪問控制[root@localhost extra]# cd /etc/httpd/conf
[root@localhost conf]# htpasswd -c /etc/httpd/conf/pwd chen01 //創(chuàng)建一個chen01用戶,放在路徑底下,起個名字pwd. htpasswd:用YUM安裝直接可以使用,如果手工編譯安裝,要把這個命令加到/usr/local/bin系統(tǒng)識別的命令底下。
New password: //輸入你的密碼
Re-type new password: //重復(fù)輸入
Adding password for user chen01
[root@localhost conf]# ls
extra httpd.conf magic pwd
[root@localhost conf]# cat pwd
chen01:$apr1$lOLJMVUo$EZ7qupc1bHN3k38OUw/1F.
[root@localhost conf]# htpasswd /etc/httpd/conf/pwd chen02 //如果這個目錄已存在,就不要加-c了
New password:
Re-type new password:
Adding password for user chen02
[root@localhost conf]# cat pwd
chen01:$apr1$lOLJMVUo$EZ7qupc1bHN3k38OUw/1F.
chen02:$apr1$5cbb6tpU$mt5EZG/8y7qXhyi1Pz2Lk1
[root@localhost conf]#
添加到容器當(dāng)中指定某個IP用戶登錄訪問控制[root@localhost extra]# vim vhost.conf
<VirtualHost 192.168.136.136:80>
DocumentRoot "/var/www/html/accp02/"
ErrorLog "logs/www.accp02.com.error_log"
Customlog "logs/www.accp02.com.access_log" common
<Directory "/var/www/html">
AuthName "DocumentRoot" //聲明信息
AuthType Basic //驗證類型為基本驗證
AuthUserFile /etc/httpd/conf/pwd //驗證文件,目錄位置
Require valid-user //授權(quán)給用戶登錄
</Directory>
</VirtualHost>
[root@localhost extra]# systemctl restart httpd
去客戶機測試一下用戶登錄訪問控制以上就是我們所有的內(nèi)容了,謝謝大家收看
寫在最后:
本專欄所有文章均為杭州課工場學(xué)員投稿,如有問題歡迎指出討論,未經(jīng)允許,禁止轉(zhuǎn)載!
關(guān)鍵詞:訪問,主機,虛擬,基礎(chǔ),企業(yè)