虚拟服务器 端口管理,Apache服务配置虚拟主机(基于域名、端口、IP地址)与简单访问权限管理...

虚拟Web主机

在同一台物理服务器中运行多个Web站点,其中每一一个站点并不独立占用一台真正的计算机。

httpd支持的虚拟主机类型

基于域名的虚拟主机

基于IP地址的虚拟主机

基于端口的虚拟主机

构建虚拟主机------基于域名

(1)安装bind、httpd服务。

bafb77317502251c9e6e0bbcb70d79c2.png

(2)进入named服务的主配置文件,将下图两个位置改为“any”。

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

e1cdc9adc0aff245a4973ffc3d4ee14d.png

(3)进入named服务的区域配置文件,添加两个域名的区域信息。

[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; };

};

121c9427fd469d20af7411625ef8d68f.png

(4)进入“/var/named/”目录,保留权限复制一份“named.localhost”区域数据配置文件,命名为“aaa.com.zone”,然后对其进行修改。

[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

83d140b59ddb8c7293bd4e24e6eef78d.png

(5)再保留权限复制一份“aaa.com.zone”文件,命名为“bbb.com.zone”,不用进行修改。然后开启named服务,关闭防火墙和增强性安全功能。

[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)再开一台win10虚拟机,将其DNS服务器的IP地址,设置为刚才Linux系统的IP地址。

23ed228d8e0b0d97b409fa547e165983.png

(7)用win10主机去测试DNS服务能否解析,解析成功。

0755c1236118229c0e61645f6cd7d96e.png

(8)进入“/etc/httpd/conf”目录,创建一个“extra/”目录,然后进入“extra/”目录,用vim编辑器,新建一个配置文件“vhost.conf”,在配置文件里输入以下内容。

[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

DocumentRoot "/var/www/html/aaa/"

ServerName www.aaa.com

ErrorLog "logs/www.aaa.com.error_log"

CustomLog "logs/www.aaa.com.access_log" common

Require all granted

DocumentRoot "/var/www/html/bbb/"

ServerName www.bbb.com

ErrorLog "logs/www.bbb.com.error_log"

CustomLog "logs/www.bbb.com.access_log" common

Require all granted

5dfe7b58f21367db74f7cacb075614f3.png

(9)进入“/var/www/html/”创建两个目录“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)进入“aaa/”目录,新建一个站点首页文件,内容如下:

[root@localhost html]# cd aaa

[root@localhost aaa]# ls

[root@localhost aaa]# vim index.html

this is aaa web

e01ed8e2eb44cb14098268b68b2e908a.png

(11)进入“bbb/”目录,新建一个站点首页文件,内容如下:

[root@localhost aaa]# cd ../bbb

[root@localhost bbb]# ls

[root@localhost bbb]# vim index.html

this is bbb web

93249bd3c278fe763352f6b951c4acc8.png

(12)进入httpd服务的主配置文件,在末行将我们新建的配置文件写进主配置文件,然后启动httpd服务。

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

Include conf/extra/vhost.conf

[root@localhost bbb]# systemctl start httpd

[root@localhost bbb]#

b9c82cffea919ec9011a4e623ba9bf3f.png

(13)用win10 主机去分别访问两个域名,都能访问成功。

3b2f0b99ff54ad256f3352fd8f6941a4.png

6a1d8d8b70f492a86848803b902ab444.png

构建虚拟主机------基于端口

(1)在上一个实验的基础上,进入配置文件“vhost.conf”,添加一个“www.aaa.com”域名的8080端口。

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

DocumentRoot "/var/www/html/aaa/"

ServerName www.aaa.com

ErrorLog "logs/www.aaa.com.error_log"

CustomLog "logs/www.aaa.com.access_log" common

Require all granted

DocumentRoot "/var/www/html/bbb/"

ServerName www.bbb.com

ErrorLog "logs/www.bbb.com.error_log"

CustomLog "logs/www.bbb.com.access_log" common

Require all granted

DocumentRoot "/var/www/html/aaa02/"

ServerName www.aaa.com

ErrorLog "logs/www.aaa02.com.error_log"

CustomLog "logs/www.aaa02.com.access_log" common

Require all granted

8c5d9227bfaebba8fe38dcf7c2eaaf85.png

(2)进入“/var/www/html”目录,新建一个“aaa02”目录,进入“aaa02”目录,新建一个站点首页文件,内容如下:

[root@localhost bbb]# cd ../

[root@localhost html]# mkdir aaa02

[root@localhost html]# cd aaa02/

[root@localhost aaa02]# vim index.html

this is aaa02 web

eb8f968c886c7a445fc8a1a781c13ad1.png

(3)进入httpd服务主配置文件,添加监听端口,同时将IPv6的端口的监听注销。重启httpd服务。

[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]#

d9102c439a84568097d1fe0ee9be1317.png

(4)再次用win10主机访问两个端口不同的域名,访问成功。

d755f20951874b5881212e4818812808.png

3d56fbf7a4ed775e8d884fa3cae1eca0.png

构建虚拟主机------基于IP

(1)给Linux主机添加一块网卡,查看IP地址。

cec7631a2a5a5deb662708a78650e920.png

689bbecd759bb74a1a539494e1fea9c3.png

(2)进入配置文件“vhost.conf”,进行如下输入:

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

DocumentRoot "/var/www/html/aaa/"

ErrorLog "logs/www.aaa.com.error_log"

CustomLog "logs/www.aaa.com.access_log" common

Require all granted

DocumentRoot "/var/www/html/aaa02/"

ErrorLog "logs/www.aaa02.com.error_log"

CustomLog "logs/www.aaa02.com.access_log" common

Require all granted

96f15a382edaf0dd7d40873ee96b0987.png

(3)分别对“aaa”站点与“aaa02”站点的主页文件进行如下修改:

[root@localhost aaa02]# cd ../aaa

[root@localhost aaa]# vim index.html

this is 133 aaa web

f0e97617437db09949b7cd0e0089f549.png

[root@localhost aaa]# cd ../aaa02

[root@localhost aaa02]# vim index.html

this is 139 aaa02 web

354899ec381852ca08fcf8cd6bd88506.png

(4)进入httpd主配置文件,进行端口的添加与注释。然后重启httpd服务。

[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]#

2b9511ed454e7f645f06c2c37f324fa6.png

(5)用win10主机去访问两个不同IP地址的站点,访问成功。但是只能用IP地址访问,一般情况访问网站用的是域名,接下来我们进行域名访问不同IP地址站点的配置。

3549a285bbb6d9ae36ec58b2aec58b17.png

5a11720c11d8001f7722cc57022f2c16.png

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

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

DocumentRoot "/var/www/html/aaa/"

ServerName www.aaa.com

ErrorLog "logs/www.aaa.com.error_log"

CustomLog "logs/www.aaa.com.access_log" common

Require all granted

DocumentRoot "/var/www/html/aaa02/"

ServerName www.aaa02.com

ErrorLog "logs/www.aaa02.com.error_log"

CustomLog "logs/www.aaa02.com.access_log" common

Require all granted

eeb03607bae7dfb890d97647923402da.png

(7)进入named服务的区域配置文件中,添加一个“aaa02”的区域信息。

[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; };

};

3d930867baf77c35e49c2b90ff38f916.png

(8)进入“/var/named/”目录,保留权限复制一份“aaa.com.zone”文件,命名为“aaa02.com.zone”,同时对其进行如下修改:

[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

d45149a3c82638f9db4d55e4d5355a14.png

(9)再次用win10主机,通过域名去访问两个不同IP地址的站点,访问成功。

23ec0485410d6518ed3e8baccd3152eb.png

9ed988f64fdb69b42e6884b4885f1e4d.png

访问权限控制

(1)查看win10主机的IP地址。

bf7616b0b9f9374f86ffc31aebf644b8.png

(2)在配置文件“vhost.conf”中添加拒绝win10主机访问,“www.aaa.com”域名规则。然后重启服务

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

DocumentRoot "/var/www/html/aaa/"

ServerName www.aaa.com

ErrorLog "logs/www.aaa.com.error_log"

CustomLog "logs/www.aaa.com.access_log" common

Require not ip 192.168.52.129

Require all granted

DocumentRoot "/var/www/html/aaa02/"

ServerName www.aaa02.com

ErrorLog "logs/www.aaa02.com.error_log"

CustomLog "logs/www.aaa02.com.access_log" common

Require all granted

[root@localhost ~]# systemctl restart httpd

40838065181bde7ce75e1e2902a1244a.png

(3)清除win10主机浏览器的历史记录,然后分别访问两个域名。此时“www.aaa.com”域名已经访问不到首页了,只能看到Apache默认的页面。

f1932083c0c554b9cdc131739cd118fb.png

ef2160835ae4ce68bf7c710dc5c39e12.png

2756f6e2f10f7b310569527e9bfa93c5.png

(4)用“htpasswd”命令创建用户认证数据库,“-c”选项是用来创建文件“passwd”的,如果文件已经存在就不用加。

[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”域名添加身份验证访问规则,然后重启服务。

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

DocumentRoot "/var/www/html/aaa/"

ServerName www.aaa.com

ErrorLog "logs/www.aaa.com.error_log"

CustomLog "logs/www.aaa.com.access_log" common

Require not ip 192.168.52.129

Require all granted

DocumentRoot "/var/www/html/aaa02/"

ServerName www.aaa02.com

ErrorLog "logs/www.aaa02.com.error_log"

CustomLog "logs/www.aaa02.com.access_log" common

AuthName "DocumentRoot"

AuthType Basic

AuthUserFile /etc/httpd/conf/passwd

Require valid-user

[root@localhost conf]# systemctl restart httpd

[root@localhost conf]#

0cba24801bc3e7fc7e0b929d42c7a940.png

(6)清除win10主机的浏览器缓存,然后再次访问“www.aaa02.com”域名,结果弹出身份验证。输入用户和密码后访问成功。

d30f2955466899cc1188f19b7c5d8752.png

f285d85f91a7f748f67217c5c20765de.png

587f8861b0b6872027a550f1a400b8d7.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值