Web网站服务(二)

1、客户机地址限制。

Require all granted:表示允许所有主机访问。

Require all denied:表示拒绝所有主机访问。

Require local:表示仅允许本地主机访问。

Require [not] host <主机名或域名列表>:表示允许或拒绝指定主机或域访问。

Require [not] ip<ip ip地址或网段列表>:表示允许或拒绝指定IP地址或网段访问。

通常情况下,网站服务器是对所有客户机开放的,网页文档目录并未做任何限制,因此使用的是"Require all granted"策略,表示允许任何客户机访问。配置文件路径:[ /usr/local/httpd/conf/httpd.conf ]

定义限制策略时,多个不带not的Require配置语句之间是"或"的关系,即任意一条Require配置语句满足条件均可以访问。

若只希望IP地址为192.168.136.1的主机能够访问/usr/local/httpd/htdocs网页目录下的内容,则需要配置以下内容。配置文件路径:[ /usr/local/httpd/conf/httpd.conf ]

若希望禁止网段访问,需要修改以下配置

当未被授权的客户机访问时,将会被拒绝访问,注意:修改配置文件后均需要重启服务

2、 用户授权限制。

httpd服务支持使用摘要认证(Digest)和基本认证(Basic)两种方式,使用摘要认证需要在编译httpd之前添加"--enable-auth-digest"选项。

2.1、创建用户认证数据文件。

httpd的基本认证通过校验用户名、密码组合来判断是否允许用户访问。授权访问的用户账户需要事先建立,并保存在固定的数据文件中。使用专门的htpasswd工具程序,可以创建授权用户数据文件

复制代码
[root@yang ~]# cd /usr/local/httpd/

##使用/bin/目录下的执行文件htpasswd创建一个名为webadmin的用户,并且存放在.awspwd的隐藏文件中
[root@yang httpd]# bin/htpasswd -c /usr/local/httpd/conf/.awspwd webadmin
New password: 
Re-type new password: 
Adding password for user webadmin

##查看.awspwd隐藏文件中的内容
[root@yang httpd]# cat /usr/local/httpd/conf/.awspwd 
webadmin:$apr1$71qWzdG2$FKS/43H0XO4GQxyCkfCok1

因为上面创建webadmin的时候也创建好了.awspwd隐藏文件,所有下次创建用户时,就不需要"-c"选项了

复制代码
[root@yang httpd]# bin/htpasswd /usr/local/httpd/conf/.awspwd bdqn
New password: 
Re-type new password: 
Adding password for user bdqn

[root@yang httpd]# cat /usr/local/httpd/conf/.awspwd 
webadmin:$apr1$71qWzdG2$FKS/43H0XO4GQxyCkfCok1
bdqn:$apr1$9uU9mL67$ieD7/J6O.zPmU8GeQtVs11

2.2、添加用户授权配置。

有了授权用户账户后,还需要修改httpd.conf配置文件,在特定的目录区域中添加授权配置。

复制代码
[root@yang ~]# vim /usr/local/httpd/conf/httpd.conf 

<Directory "/usr/local/httpd/htdocs">
    Require all granted
    AuthName " DocumentRoot "
    AuthType Basic
    AuthUserFile /usr/local/httpd/conf/.awspwd
    Require valid-user
</Directory>

[root@yang ~]# systemctl restart httpd  //重启服务

AuthName:定义受保护的领域名称,该内容将在浏览器弹出的认证对话框中显示。

AuthType:设置认证的类型,Basic表示基本认证。
AuthUserFile:设置用于保存用户账号,密码的认证文件路径。
Require valid-user:要求只有认证文件中的合法用户才能访问。其中,valid---user表示所有

注意:主机访问控制中所允许的主机可以直接访问网站,不需要用户授权。主机访问控制中所禁止的主机则不可以直接访问网站,需要进行用户授权。

3、构建虚拟Web主机。

虚拟Web主机指的是在同一台服务器中允许多个Web站点,其中的每个站点实际上并不独立占用整个服务器。

使用httpd可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的Web站点。httpd支持的虚拟主机类型包括三种: 基于域名、基于IP地址、基于端口

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

3.2、 为虚拟主机准备网页文档。

为每个虚拟Web主机准备网站目录即网页文档以方便测试。在/var/www/html目录下创建两个子文件夹作为网站根目录。

复制代码
[root@yang ~]# mkdir -p /var/www/html/benetcom
[root@yang ~]# mkdir -p /var/www/html/accpcom

[root@yang ~]# echo "<h1>www.benet.com</h1>" > /var/www/html/benetcom/index.html
[root@yang ~]# echo "<h1>www.accp.com</h1>" > /var/www/html/benetcom/index.html

3.3、添加虚拟主机配置。

复制代码
[root@yang ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 

<VirtualHost *:80>
    ServerAdmin webmaster@benet.com
    DocumentRoot "/var/www/html/benetcom"
    ServerName benet.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/accpcom"
    ServerName accp.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.conf配置文件

复制代码
[root@yang ~]# vim /usr/local/httpd/conf/httpd.conf 

重启服务使新配置生效

复制代码
[root@yang ~]# systemctl restart httpd

3.4、在客户机中访问虚拟Web主机。

修改客户机的DNS为服务器的IP地址

3.5、基于IP地址的虚拟主机。

复制代码
[root@localhost ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 

<VirtualHost 192.168.136.24:80>
    ServerAdmin webmaster@benet.com
    DocumentRoot "/var/www/html/benetcom"
    ServerName benet.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 192.168.136.55:80>
    ServerAdmin webmaster@accp.com
    DocumentRoot "/var/www/html/accpcom"
    ServerName accp.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>

[root@localhost ~]# systemctl restart httpd.service  //重启服务

5.4、基于端口的虚拟主机。

复制代码
<VirtualHost 192.168.136.55:8001>
    ServerAdmin webmaster@benet.com
    DocumentRoot "/var/www/html/benetcom"
    ServerName benet.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 192.168.136.55:8000>
    ServerAdmin webmaster@accp.com
    DocumentRoot "/var/www/html/accpcom"
    ServerName accp.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 8001
Listen 8000

[root@localhost ~]# systemctl restart httpd.service  //重启服务
相关推荐
向qian看_-_1 天前
Linux 使用pip报错(error: externally-managed-environment )解决方案
linux·python·pip
yaoxtao1 天前
java.nio.file.InvalidPathException异常
java·linux·ubuntu
2501_920047031 天前
git在Linux中的使用
linux·git·elasticsearch
程序设计实验室1 天前
在鸡哥14x上安装Linux:Fedora 42 上手体验
linux
UNbuff_01 天前
Linux bzip2 命令使用说明
linux·运维·服务器
IOT-Power1 天前
Ubuntu下把 SD 卡格式化为 FAT32
linux·运维·ubuntu
嫩萝卜头儿1 天前
虚拟地址空间:从概念到内存管理的底层逻辑
linux·服务器·网络
proware1 天前
昇腾310i Pro固件说明
linux·运维·服务器
爱的si念1 天前
嵌入式ARM64 基于RK3588原生SDK添加用户配置选项./build lunch & debian
linux·debian·嵌入式
穷人小水滴1 天前
在 VirtualBox 虚拟机中安装 Fedora CoreOS 操作系统
linux·virtualbox·fedora