APache网站服务配置访问控制和构建虚拟主机
admin
2023-03-02 02:40:56
0

博文目录
一、Httpd服务的访问控制
1、客户机地址限制
2、用户授权限制
二、构建虚拟Web主机
三、配置基于域名的虚拟主机
四、配置基于IP地址的虚拟主机
五、配置基于端口号的虚拟主机

一、Httpd服务的访问控制

为了更好地控制对网站资源的访问。可以为特定的网站目录添加访问授权。主要分为客户机地址限制和用户授权限制,这两种访问控制方式都应用于httpd.conf配置文件中的目录区域范围内。

1、客户机地址限制

通过Require配置项,可以根据主机的主机名或IP地址来决定是否允许客户端访问。在httpd服务器的主配置文件的配置段中均可以使用Require配置项来控制客户端的访问。地址的形式可以是IP地址、网络地址、主机名和域名,使用名称“all”时表示任意地址。限制策略的常用格式如下所示:

  • Require all granted:表示允许所有主机访问。
  • Require all denied:表示拒绝所有主机访问。
  • Require local:表示仅本地主机访问。
  • Require [not] host <主机名或域名列表>:表示允许或拒绝指定主机或域访问。
  • Require [not] ip :表示允许或拒绝指定IP地址或网段访问。

定义限制策略时,多个不带not的require配置语句之间是或的关系,即任意一条require配置语句就可以访问,若即有不带not的require配置语句,又出现了带not的require配置语句,则语句之间是与的关系,即同时满足所有require配置语句才可访问。
具体配置如下:
做一个策略,仅允许ip地址为192.168.100.101的主机能够访问/usr/local/httpd/htdocs网页目录下的内容,则策略如下(进入网站主配置文件httpd.conf后,在末行模式下输入/Directory,按回车键查找到相应的位置):


    ................        
    Require ip 192.168.100.101         

配置完成重启服务,192.168.100.101的客户端就可以访问了。

反之,需要使用“仅拒绝”的限制策略时,灵活使用Require与Require not配置语句设置拒绝策略,只禁止一部分主机访问。在使用not禁止访问时要将其置于容器中,并在容器中指定相应的限制策略。
具体配置如下:


    ................        
        
        Require all granted
    Require  not ip 192.168.100.0/24 192.168.200.0/24         
        

也可以通过以下方式来限制:


    ................        
    Deny from 192.168.100.0/24 192.168.200.0/24         

2、用户授权限制

基于用户的访问控制包含认证和授权两个过程,是Apache允许指定用户使用用户名和密码访问特定资源的一种方式。httpd服务器支持使用摘要认证(Digest)和基本认证(Basic)两种方式。使用摘要认证的话需要在编译http之前添加“--enable-auth-digest”选项,但并不是所有的浏览器都支持摘要认证,所以不推荐使用;而基本认证是httpd服务的基本功能,不需要预先配置特别的选项。

1)创建用户认证数据文件

[root@centos01 ~]# /usr/local/httpd/bin/htpasswd -c /usr/local/httpd/htdocs/.password admin  
New password:                  
Re-type new password:     
Adding password for user admin        

查看用户是否添加:

[root@localhost httpd]# cd /usr/local/httpd/                
[root@localhost httpd]# cat conf/.password
admin:oVc8B0TaIVv0s                   

2)修改Apache主配置文件加载身份验证

[root@centos01 ~]# vi /usr/local/httpd/conf/httpd.conf      
.......   
    AuthName "Default"      
    AuthType Basic             
    AuthuserFile /usr/local/httpd/htdocs/.password        
    Require valid-user         

3)重启apache服务
[root@centos01 ~]# systemctl restart httpd

客户端访问会出现提示框,输入账户密码就可以访问了,需要注意的是,用户访问授权与主机访问控制同时设置时,设置的主机访问控制优先生效。所以在进行用户授权限制时,需要删除掉其中的require语句。要不然,用户访问授权不会生效。

二、构建虚拟Web主机

虚拟Web主机指的是在同一台服务器中运行多个Web站点,其中的每个站点实际上并不独立占用整个服务器,因此被称为“虚拟”Web主机。通过虚拟Web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。使用httpd可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的Web站点。httpd支持的虚拟主机类型包括一下三种:

  • 基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的。这是使用最为普遍的虚拟Web主机类型。
    基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的。这是使用最为普遍的虚拟Web主机类型。
  • 基于IP地址:为每个虚拟主机使用不同的域名,且各自对应的IP地址也 不相同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛。
  • 基于端口:为每个虚拟主机使用不同的域名,IP地址来区分不同的站点内容,而是使用了不同的TCP端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。

三、配置基于域名的虚拟主机

DNS自行搭建,如果有不明白的可以参考博文:CentOS7简单搭建DNS服务
下面不在进行详细的解释。

1、为虚拟主机提供域名解析

[root@centos01 ~]# vi /etc/named.conf         
options {
        listen-on port 53 { 192.168.100.10;};
        directory "/var/named";
        allow-query { 192.168.100.0/24; };
};
zone "bdqn.com" IN {
        type    master;
        file    "bdqn.com.zone";
};
zone "benet.com" IN {
        type    master;
        file    "benet.com.zone";
};
[root@centos01 ~]# vi /var/named/bdqn.com.zone       
$TTL    86400
@       SOA     bdqn.com.       root.bdqn.com(
        2019081610
        1H
        15M
        1W
        1D
)
@       NS      centos01.bdqn.com.
centos01 A      192.168.100.10
www      A      192.168.100.10
[root@centos01 ~]# cp /var/named/bdqn.com.zone /var/named/benet.com.zone
[root@centos01 ~]# vi /var/named/benet.com.zone    
TTL    86400
@       SOA     benet.com.      root.benet.com(
        2019081610
        1H
        15M
        1W
        1D
)
@       NS      centos01.benet.com.
centos01 A      192.168.100.10
www      A      192.168.100.10

2、编辑网卡

[root@centos01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens32  
……            
DNS1=192.168.100.10        
[root@centos01 ~]# systemctl restart network  
[root@centos01 ~]# systemctl restart named    

3、客户端解析域名

APache网站服务配置访问控制和构建虚拟主机

4、为虚拟机准备网页文档

为每个虚拟web主机准备网站目录及网页文档。为了方便测试,分别为每个虚拟web主机提供包含不同的首页文件:

[root@centos01 ~]# mkdir -p /var/www/
[root@centos01 ~]# mkdir -p /var/www/bdqn.com
[root@centos01 ~]# mkdir -p /var/www/benet.com
[root@centos01 ~]# echo "www.bdqn.com" > /var/www/bdqn.com/index.html
[root@centos01 ~]# echo "www.benet.com" > /var/www/benet.com/index.html

5、修改主配置文件支持虚拟主机

[root@centos01 ~]# vi /usr/local/httpd/conf/httpd.conf   
    390 # Virtual hosts
391 Include conf/extra/httpd-vhosts.conf             

6、修改虚拟主机访问权限

[root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf  
NameVirtualHost 192.168.100.10:8  
            
        order deny,allow                
        allow from all                     

7、配置基于域名的虚拟主机

[root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 
NamevirtualHost www.bdqn.com:80    
NamevirtualHost www.benet.com:80   

        order deny,allow
        allow from all


     
        DocumentRoot "/var/www/bdqn.com/"       
        ServerName www.bdqn.com                     
        ErrorLog "logs/www.bdqn.com.error_log"  
        CustomLog "logs/www.bdqn.com.access_log" common        

           
        DocumentRoot "/var/www/benet.com/"
        ServerName www.benet.com
        ErrorLog "logs/www.benet.com.error_log"
        CustomLog "logs/www.benet.com.access_log" common

[root@centos01 ~]# systemctl restart httpd  

8、客户端访问验证

APache网站服务配置访问控制和构建虚拟主机

APache网站服务配置访问控制和构建虚拟主机

四、配置基于IP地址的虚拟主机

1、复制一个新的网卡

[root@centos01 ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens32 /etc/sysconfig/network-scripts/ifcfg-ens32:1
[root@centos01 network-scripts]# vim ifcfg-ens32:1   
......                       
NAME=ens32:1      
DEVICE=ens32:1    
ONBOOT=yes
IPADDR=192.168.100.20            
NATEMASK=255.255.255.0
DNS1=192.168.100.10                
[root@centos01 ~]# systemctl restart network           

2、配置基于IP地址的虚拟主机

[root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf    
NamevirtualHost www.bdqn.com:80        
NamevirtualHost www.benet.com:80             

        order deny,allow
        allow from all


            
        DocumentRoot "/var/www/bdqn.com/"
        ServerName www.bdqn.com
        ErrorLog "logs/www.bdqn.com.error_log"
        CustomLog "logs/www.bdqn.com.access_log" common

        
        DocumentRoot "/var/www/benet.com/"
        ServerName www.benet.com
        ErrorLog "logs/www.benet.com.error_log"
        CustomLog "logs/www.benet.com.access_log" common

[root@centos01 ~]# systemctl restart httpd           

3、客户端访问验证

APache网站服务配置访问控制和构建虚拟主机

APache网站服务配置访问控制和构建虚拟主机

五、配置基于端口号的虚拟主机

1、修改Apache主配置文件

[root@centos01 ~]# vi /usr/local/httpd/conf/httpd.conf  
     40 Listen 80
     41 Listen 8080   

2、配置基于端口的虚拟主机

[root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf    
NamevirtualHost www.bdqn.com:80
NamevirtualHost www.benet.com:80

        order deny,allow
        allow from all


    
        DocumentRoot "/var/www/bdqn.com/"
        ServerName www.bdqn.com
        ErrorLog "logs/www.bdqn.com.error_log"
        CustomLog "logs/www.bdqn.com.access_log" common

        
        DocumentRoot "/var/www/benet.com/"
        ServerName www.benet.com
        ErrorLog "logs/www.benet.com.error_log"
        CustomLog "logs/www.benet.com.access_log" common

[root@centos01 ~]# systemctl restart httpd  

3、客户端访问验证

APache网站服务配置访问控制和构建虚拟主机

APache网站服务配置访问控制和构建虚拟主机

—————— 本文至此结束,感谢阅读 ——————

相关内容

热门资讯

邮轮暴发汉坦病毒疫情,世卫确认... 据凤凰卫视报道,大西洋邮轮“洪迪厄斯”号暴发汉坦病毒疫情,世界卫生组识5月7日证实,船上共有5宗确诊...
内蒙古赤峰两村半个多世纪的土地... 澎湃新闻记者 王选辉争议土地大北叉沟。本文图均为 受访者 提供备受社会关注的“赤峰两村半个多世纪的土...
冥王星5月8日开启逆行 持续约... 被“逐出”太阳系大行星序列的冥王星5月8日将结束顺行,开启为期约5个月的逆行。这也是2026年冥王星...
夸大AI功能被起诉 苹果2.5... 当地时间5月5日,因夸大AI系统“苹果智能”(Apple Intelligence)的能力,误导数百...
学习机直播乱象调查:主播打北大... 极目新闻记者 刘闪 何佳仪打开短视频平台,各类学习机测评直播间随处可见。一些自诩自己是“老师”的主播...
即日起,郑州“错峰加油”有优惠... 进入5月,又到了郑州臭氧污染频发的季节,记者从郑州市生态环境局移动源污染监管处了解到,为减少臭氧污染...
汗水写热爱 篮球致青春 成人组1VS1比赛。河南日报全媒体记者 黄晖 摄“非常高兴能够参加这种全民赛事,也希望以后能够有更多...
荷兰六六民主党全国办公室遭爆炸... 荷兰警方7日说,荷兰执政党之一的六六民主党位于海牙的全国办公室当晚遭爆炸物袭击,造成建筑受损,无人受...
樱花树油烟机总是开不了怎么回事 电源问题。先检查电源是否未插上或是否电,若没有,将它重新插好,等待来电后测试,检查开不了机的问题是否...
燃气灶打火后一会就灭是什么原因 原因可能是电池没有电了,所以一开始能够打着火,但是燃烧了一会儿又熄灭了,这种情况下可以尝试更换一节新...