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  //重启服务
相关推荐
M78佐菲2 小时前
Linux学习笔记:TCP协议
linux·笔记·学习·tcp/ip·算法
Brilliantwxx2 小时前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
不怕犯错,就怕不做3 小时前
git prune 自动删除本地记录中那些远程已经不存在的分支引用
linux·服务器·git
一池秋_4 小时前
arm低配linux设备,桌面应用冷启动提速方法
linux·运维·arm开发
惜离殇5 小时前
从零开始的敲代码生活--Linux应用软件(文件操作基础1)
linux·c语言·文件操作·标准io
闲云野鹤在人间7 小时前
OpenStack架构介绍和安装流程
linux·网络·架构·openstack
我命由我123457 小时前
Linux - Linux/POSIX 路径斜杠折叠规则
linux·运维·服务器·android studio·android jetpack·android-studio·android runtime
xx~t8 小时前
嵌入式——Linux软件编程——网络1
linux·c语言·网络·vscode·网络协议
Uncertainty!!8 小时前
Linux 主机无法完成校园网认证排查记录:从 DHCP、ARP 到 Portal 认证流程分析
linux·运维·服务器
神威难绷泪9 小时前
Linux消息队列 & 共享内存 笔记
linux·消息队列·共享内存