Centos7.9中构建httpd服务虚拟Web主机(基于域名+基于IP地址+基于端口)

虚拟Web主机简介

允许在同一台物理服务器上托管多个独立的网站。每个网站都可以有自己独立的域名、内容、和配置,就像独立的服务器一样。这种技术非常适合中小型网站,因为它可以降低成本、节约资源,同时简化管理。

httpd虚拟主机包含以下三大类

基于域名:

通过域名来区分不同的网站。服务器会根据HTTP请求头中的Host字段来决定响应哪个网站内容。这种方式适合在同一个IP地址上托管多个网站,便于管理和节省IP资源。

基于IP地址:

通过不同的IP地址来区分网站。每个站点分配独立的IP地址,服务器根据请求的IP地址来选择对应的网站。这种方式适用于对IP地址有特定要求的场景。

基于端口:

通过不同的端口号来区分网站。例如,可以将xie.com:80和xie.com:8080指向不同的网站内容。尽管这种方式不常见,但在一些特定应用中可能有用。

搭建以上三种虚拟主机步骤:

基于域名:

首先需要搭建DNS服务,以便于提供域名解析。

搭建dns服务:

#安装dns服务
yum -y install bind* 

#对配置文件进行备份
cp /etc/named.conf /etc/named.conf.bak

#修改配置文件
vim /etc/named.conf

#备份dns的区域配置文件
cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak

#修改区域配置文件,往这个配置文件内插入两块配置文件
vim /etc/named.rfc1912.zones
zone "benet.com" IN {
        type master;
        file "benet.com.zone";
};

zone "accp.com" IN {
        type master;
        file "accp.com.zone";
};
........

以下该创建的文件名称要与上面区域配置文件指定的名称相同,否则无法解析 

#修改区域主配置文件
touch /var/named/benet.com.zone
vim /var/named/benet.com.zone
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS      www.benet.com.
www     IN      A       192.168.42.130

touch /var/named/accp.com.zone
vim /var/named/accp.com.zone
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS      www.accp.com.
www     IN      A       192.168.42.130

#配置服务端网卡,ip地址需要设置为静态,dns地址指向为本地
vim /etc/sysconfig/network-scripts/ifcfg-ens33

#启动dns服务
systemctl  start named   &&   systemctl  enable named

安装httpd服务:

#安装httpd服务
yum -y install httpd

为虚拟主机准备网页文档

#新建网页文档存放点
mkdir -p /var/www/html/one
mkdir -p /var/www/html/two
#插入网页内容
echo "<h1>www.benet.com</h1>" > /var/www/html/one/index.html
echo "<h1>www.accp.com</h1>" > /var/www/html/two/index.html

添加虚拟主机配置,如果以上域名有做修改那么下面的配置文件中的域名也要做出相对应的改动

vim /etc/httpd/conf.d/httpd-vhosts.conf
<VirtualHost *:80>
    ServerAdmin webmaster@benet.com
    DocumentRoot "/var/www/html/one"
    ServerName www.benet.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.benet.com.error_log"
    CustomLog "logs/www.benet.com.access_log" common
    <Directory "/var/www/html">
      Require  all granted
    </Directory>
</VirtualHost>
 
<VirtualHost *:80>
    ServerAdmin webmaster@accp.com
    DocumentRoot "/var/www/html/two"
    ServerName www.accp.com
    ServerAlias www.dummy1-host.example.com
    ErrorLog "logs/www.accp.com.error_log"
    CustomLog "logs/www.accp.com.access_log" common
    <Directory "/var/www/html">
      Require  all granted
    </Directory>
</VirtualHost>
#开启httpd服务 并进行测试
systemctl start httpd   &&   systemctl  enable httpd

测试:

基于ip地址:

修改网卡配置文件:

cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33:0
vim /etc/sysconfig/network-scripts/ifcfg-ens33:0

重新加载网卡配置

ifdown ens33:0;ifup ens33:0

安装httpd服务:

yum -y install httpd

为虚拟主机准备网页文档

#新建网页文档存放点
mkdir -p /var/www/html/one
mkdir -p /var/www/html/two
#插入网页内容
echo "<h1>www.a.com</h1>" > /var/www/html/one/index.html
echo "<h1>www.b.com</h1>" > /var/www/html/two/index.html

添加虚拟主机配置

vim /etc/httpd/conf.d/httpd-vhosts.conf

#开启httpd服务 并进行测试
systemctl start httpd   &&   systemctl  enable httpd

测试:

基于端口:

安装httpd服务:

yum -y install httpd

为虚拟主机准备网页文档

#新建网页文档存放点
mkdir -p /var/www/html/one
mkdir -p /var/www/html/two
#插入网页内容
echo "<h1>www.benet.com</h1>" > /var/www/html/one/index.html
echo "<h1>www.accp.com</h1>" > /var/www/html/two/index.html

添加虚拟主机配置

vim /etc/httpd/conf.d/httpd-vhosts.conf
<VirtualHost *:80>
    ServerAdmin webmaster@benet.com
    DocumentRoot "/var/www/html/one"
    ServerName www.benet.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.benet.com.error_log"
    CustomLog "logs/www.benet.com.access_log" common
    <Directory "/var/www/html">
      Require  all granted
    </Directory>
</VirtualHost>

<VirtualHost *:8080>
    ServerAdmin webmaster@accp.com
    DocumentRoot "/var/www/html/two"
    ServerName www.accp.com
    ServerAlias www.dummy1-host.example.com
    ErrorLog "logs/www.accp.com.error_log"
    CustomLog "logs/www.accp.com.access_log" common
    <Directory "/var/www/html">
      Require  all granted
    </Directory>
</VirtualHost>
Listen 8080 

#开启httpd服务 并进行测试
systemctl start httpd   &&   systemctl  enable httpd

测试:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值