原创系统笔记

Apache服务部署静态网站

本文阅读 21 分钟
首页 系统笔记 正文

部署Apache服务

Web 网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的请求后才会响应,最终用于提供服务程序的 Web 服务器会通过 HTTP(超文本传输协议)或 HTTPS(安全超文本传输协议)把请求的内容传送给用户。目前能够提供 Web 网络服务的程序有 IIS、Nginx 和 Apache 等。

  • IIS(Internet Information Service,互联网信息服务)是 Windows 系统中默认的 Web 服务程序,这是一款图形化的网站管理工具,不仅可以提供 Web 网站服务,还可以提供 FTP、NMTP、SMTP 等服务。但是,IIS 只能在 Windows 系统中使用,暂时不在我们的学习范围之内。
  • Nginx程序作为一款轻量级的网站服务软件,因其稳定性和丰富的功能而快速占领服务器市场,但Nginx 最被认可的还是其系统资源消耗低且并发能力强的特性,因此得到了国内诸如新浪、网易、腾讯等门户网站的青睐。
  • Apache 程序是目前拥有很高市场占有率的 Web 服务程序之一,其跨平台和安全性广泛被认可且拥有快速、可靠、简单的 API 扩展。

Apache服务程序可以运行在 Linux 系统、UNIX 系统甚至是 Windows 系统中,它支持基于 IP、域名及端口号的虚拟主机功能,支持多种认证方式,集成有代理服务器模块、安全 Socket 层(SSL),能够实时监视服务状态与定制日志消息,并支持各类丰富的模块。

安装Apache服务

第一步:把系统镜像挂载到/media/cdrom 目录。

[RS ~]# mount /dev/cdrom /media/cdrom    //挂载光盘
[RS ~]# vim /etc/yum.repos.d/rhel8.repo  //编写软件仓库
[BaseOS]
name=BaseOS
baseurl=file:///media/cdrom/BaseOS
enabled=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///media/cdrom/AppStream
enabled=1
gpgcheck=0

第二步:安装 Apache 服务程序。在使用 dnf 命令进行安装时,跟在命令后面的 Apache 服务的软件包名称为 httpd。

[RS ~]# dnf install httpd   //安装httpd服务
[RS ~]# systemctl start httpd   //启动httpd服务
[RS ~]# systemctl enable httpd  //加入到开机启动项

配置服务文件参数

在 Linux 系统中配置服务,其实就是修改服务的配置文件。因此,还需要知道这些配置文件的所在位置以及用途。httpd 服务程序的主要配置文件及存放位置如表所示。

作用文件名称
服务目录/etc/httpd
主配置文件/etc/httpd/conf/httpd.conf
网站数据目录/var/www/html
访问日志/var/log/httpd/access_log
错误日志/var/log/httpd/error_log

主配置文件中保存的是最重要的服务参数,一般会被保存到 /etc 目录中以软件名称命名的一个文件夹之中,名字为“服务名称.conf”,例如这里的“ /etc/httpd/conf/httpd.conf ”。

在这个配置文件中,所有以井号(#)开始的行都是注释行,其目的是对 httpd 服务程序的功能或某一行参数进行介绍,不需要逐行研究这些内容。在 httpd 服务程序的主配置文件中,存在 3 种类型的信息:注释行信息、全局配置、区域配置,如下图所示。

全局配置参数就是一种全局性的配置参数,可作用于所有的子站点,既保证了子站点的正常访问,也有效降低了频繁写入重复参数的工作量。区域配置参数则是单独针对每个独立的子站点进行设置的。在 httpd 服务程序主配置文件中,最为常用的参数如下表所示。

参数作用
ServerRoot服务目录
RSdmin管理员邮箱
User运行服务的用户
Group运行服务的用户组
ServerName网站服务器的域名
DocumentRoot网站数据目录
Listen监听的 IP 地址与端口号
DirectoryIndex默认的索引页页面
ErrorLog错误日志文件
CustomLog访问日志文件
Timeout网页超时时间,默认为 300 秒

DocumentRoot 参数用于定义网站数据的保存路径,其参数的默认值是/var/www/html(即把网站数据存放到这个目录中);而当前网站普遍的首页面名称是index.html,因此可以向/var/www/html/index.html 文件中写入一段内容,替换掉 httpd 服务程序的默认首页面。该操作会立即生效。

[RS ~]# echo "Welcome to www.zxbke.cn" > /var/www/html/index.html

默认情况下,网站数据保存在/var/www/html 目录中,如果想把保存网站数据的目录修改为/home/wwwroot 目录呢?

一、建立网站数据的保存目录,并创建首页文件

[RS ~]# mkdir /home/wwwroot
[RS ~]# echo "Hello Welcome To My Web Site www.zxbke.cn" > /home/wwwroot/index.html

二、打开httpd 的服务程序主配置文件,将122行用于定义网站数据保存路径的参数 DocumentRoot 修改为/home/wwwroot。同时将127行与134行用于定义目录权限的参数Directory 后面的路径也修改为/home/wwwroot。配置文件修改完毕后即可保存并退出。

[RS ~]# vim /etc/httpd/conf/httpd.conf 
    122 DocumentRoot "/home/wwwroot"
    127 <Directory "/home/wwwroot">
    134 <Directory "/home/wwwroot">

三、重新启动httpd服务并验证效果

[RS ~]# systemctl restart httpd

奇怪!怎么提示权限不足了? 参考下面文章设置 SELinux 解决问题!

SELinux使用详解

## SELinux 安全子系统 Linux系统使用SELinux技术的目的是为了让各个服务进程都受到约束,使其仅获取到本应获取的资源。它能够从多方面监控违法行为:对....

个人用户主页功能

如果想在系统中为每位用户建立一个独立的网站,通常的方法是基于虚拟网站主机功能来部署多个网站。但这个工作会让管理员苦不堪言(尤其是用户数量很庞大时),而且在用户自行管理网站时,还会碰到各种权限限制,需要为此做很多额外的工作。

其实,httpd 服务程序提供的个人用户主页功能完全可以胜任这个工作。该功能可以让系统内所有的用户在自己的家目录中管理个人的网站,而且访问起来也非常容易。

第一步:在 httpd 服务程序中,默认没有开启个人用户主页功能。编辑配置文件,在第 17 行的 UserDir disabled 参数前面加上井号(#),表示让 httpd 服务程序开启个人用户主页功能;同时再把第 24 行的 UserDir public_html 参数前面的井号(#)去掉(UserDir 参数表示网站数据在用户家目录中的保存目录名称,即 public_html 目录)。最后修改完毕后保存。

[RS ~]# vim /etc/httpd/conf.d/userdir.conf 
 17     #UserDir disabled        //加#进行注释
 24     UserDir public_html      //去#进行使能

第二步:在用户家目录中建立用于保存网站数据的目录及首页面文件。另外,还需要把家目录的权限修改为 755,保证其他人也有权限读取里面的内容。

[RS ~]# su - zhangxu   //切换至普通用户
[zhangxu@RS ~]$ mkdir public_html   //在家目录创建存放网站数据的目录
[zhangxu@RS ~]$ echo "this is www.zxbke.cn - zhangxu" > public_html/index.html
[zhangxu@RS ~]$ chmod -R 755 /home/zhangxu

第三步:重新启动 httpd 服务程序,在浏览器的地址栏中输入网址,其格式为“ 网址/~用户名 ”,并设置防火墙允许http的流量通过。

[root@RS ~]# systemctl restart httpd   //服务器重启服务
[root@RS ~]# systemctl enable httpd    //加入开机启动项
[root@RS ~]# firewall-cmd --permanent --zone=public --add-service=http   //防火墙放行http服务
[root@RS ~]# firewall-cmd --reload   //重新加载防火墙

第四步:SELinux 域确保服务程序不能执行违规的操作,只能本本分分地为用户提供服务。httpd 服务中突然开启的这项个人用户主页功能到底没有被 SELinux 域默认允许,使用 getsebool 命令查询并过滤出所有与 HTTP 协议相关的安全策略。

[root@RS ~]# getsebool -a | grep httpd    //查询 httpd 服务的相关安全策略
    ......
httpd_enable_homedirs --> off
    ......
[root@RS ~]# setsebool -P httpd_enable_homedirS=on   //开启相关安全策略

身份验证访问

如网站的拥有者并不希望直接将网页内容显示出来,而只想让通过身份验证的用户看到里面的内容,这时就可以在网站中添加密码功能了。

第一步:先使用 htpasswd 命令生成密码数据库。-c 参数表示第一次生成;后面再分别添加密码数据库的存放文件,以及验证要用到的用户名称(该用户不必是系统中已有的本地账户)

[root@RS ~]# htpasswd -c /etc/httpd/passwd zhangxu
    New password: //此处输入用于网页验证的密码
    Re-type new password: //再输入一遍进行确认
    Adding password for user zhangxu

第二步:继续编辑个人用户主页功能的配置文件。把第 31~37 行的参数信息修改成下列内容,其中以井号(#)开头的内容为添加的注释信息,可将其忽略。随后保存并退出配置文件,重启 httpd 服务程序即可生效。

[root@RS ~]# vim /etc/httpd/conf.d/userdir.conf 
<Directory "/home/*/public_html">
    #AllowOverride FileInfo AuthConfig Limit Indexes
    #Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    #Require method GET POST OPTIONS
    AllowOverride all   
    authuserfile "/etc/httpd/passwd"   //刚刚生成出的密码验证文件保存路径
    authname "My privately website"   //当用户访问网站时的提示信息
    authtype basic   //验证方式为密码模式
    require user zhangxu   //访问网站时需要验证的用户名称
</Directory>

此后,当用户再想访问某个用户的个人网站时,就必须输入账户和密码才能正常访问了。另外,验证时使用的账户和密码是用 htpasswd 命令生成的专门用于网站登录的账户和密码。

虚拟主机功能

利用虚拟主机功能,可以把一台处于运行状态的物理服务器分割成多个“虚拟的服务器”。但是,该技术无法实现目前云主机技术的硬件资源隔离,而只能让这些虚拟的服务器共同使用物理服务器的硬件资源,供应商只能限制硬盘的使用空间大小。出于各种考虑的因素(主要是价格低廉),目前依然有很多企业或个人站长在使用虚拟主机的形式来部署网站。

Apache 的虚拟主机功能是服务器基于用户请求的不同 IP 地址、主机域名或端口号,提供多个网站同时为外部提供访问服务的技术。

基于 IP 地址

如果一台服务器有多个 IP 地址,而且每个 IP 地址与服务器上部署的每个网站一一对应,这样当用户请求访问不同的 IP 地址时,会访问到不同网站的页面资源。而且,每个网站都有一个独立的 IP 地址,这对搜索引擎优化也大有裨益。因此以这种方式提供虚拟网站主机功能不仅最常见,而且也受到了网站站长的欢迎。

需要配置3个 IP 地址,在配置完毕并重启网络服务之后,记得检查网络的连通性,确保 3 个 IP 地址均可正常访问。

[root@RS ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160 
    IPADDR1=192.168.8.10
    IPADDR2=192.168.8.11
    IPADDR3=192.168.8.12
[root@RS ~]# nmcli connection reload ens160   //重新加载网络配置文件
[root@RS ~]# nmcli connection up ens160      //启动网卡

第1步:分别在/home/wwwroot 中创建用于保存不同网站数据的 3 个目录,并向其中分别写入网站的首页文件。每个首页文件中应有明确区分不同网站内容的信息。

[root@RS ~]# mkdir -p /home/wwwroot/10
[root@RS ~]# mkdir -p /home/wwwroot/11
[root@RS ~]# mkdir -p /home/wwwroot/12
[root@RS ~]# echo "IP:192.168.8.10" > /home/wwwroot/10/index.html
[root@RS ~]# echo "IP:192.168.8.11" > /home/wwwroot/11/index.html
[root@RS ~]# echo "IP:192.168.8.12" > /home/wwwroot/12/index.html

第2步:从 httpd 服务的配置文件中大约第 132 行处开始,分别追加写入 3 个基于 IP 地址的虚拟主机网站参数,然后保存并退出。记得需要重启 httpd 服务,这些配置才生效。

[root@RS ~]# vim /etc/httpd/conf/httpd.conf 
<VirtualHost 192.168.8.10>
    DocumentRoot /home/wwwroot/10
    ServerName www.zxbke.cn.com
    <Directory /home/wwwroot/10>
    AllowOverride None
    Require all granted
    </Directory>
</VirtualHost>
<VirtualHost 192.168.8.11>
    DocumentRoot /home/wwwroot/11
    ServerName www.zxbke.cn.com
    <Directory /home/wwwroot/11>
    AllowOverride None
    Require all granted
    </Directory>
</VirtualHost>
<VirtualHost 192.168.8.12>
    DocumentRoot /home/wwwroot/12
    ServerName www.zxbke.cn.com
    <Directory /home/wwwroot/12>
    AllowOverride None
    Require all granted
    </Directory>
</VirtualHost>

[root@RS ~]# firewall-cmd --permanent --zone=public --add-service=http   //防火墙放行
[root@RS ~]# firewall-cmd --reload    //重新加载防火墙
[root@RS ~]# systemctl restart httpd  //重启服务
[root@RS ~]# systemctl enable httpd   //加入开机启动项

第3步:此时访问网站,则会看到 httpd 服务程序的默认首页面中显示“权限不足”。

由于当前的/home/wwwroot 目录及里面的网站数据目录的 SELinux 安全上下文与网站服务不吻合,因此 httpd 服务程序无法获取到这些网站数据目录。需要手动把新的网站数据目录的 SELinux 安全上下文设置正确,并使用 restorecon 命令让新设置的 SELinux 安全上下文立即生效,这样就可以立即看到网站的访问效果。

[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10
[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10/*
[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/11
[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/11/*
[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/12
[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/12/*
[root@RS ~]# restorecon -Rv /home/wwwroot

基于主机域名

当服务器无法为每个网站都分配一个独立 IP 地址的时候,可以尝试让 Apache 自动识别用户请求的域名,从而根据不同的域名请求来传输不同的内容。在这种情况下的配置更加简单,只需要保证位于生产环境中的服务器上有一个可用的 IP 地址(这里以 192.168.8.10 为例)就可以了。由于当前还没有介绍如何配置 DNS 解析服务,因此需要手动定义 IP 地址与域名之间的对应关系。

/etc/hosts 是 Linux 系统中用于强制把某个主机域名解析到指定 IP 地址的配置文件。只要这个文件配置正确,即使网络参数中没有 DNS 信息也依然能够将域名解析为某个 IP 地址。

第1步:手动定义 IP 地址与域名之间对应关系的配置文件,保存并退出后会立即生效。

[root@RS ~]# vim /etc/hosts
    192.168.8.10 www.web10.com www.web11.com www.web12.com

第2步:分别在/home/wwwroot 中创建用于保存不同网站数据的 3 个目录,并向其中分别写入网站的首页文件。

[root@RS ~]# mkdir -p /home/wwwroot/10
[root@RS ~]# mkdir -p /home/wwwroot/11
[root@RS ~]# mkdir -p /home/wwwroot/12
[root@RS ~]# echo "www.web10.com" >/home/wwwroot/10/index.html
[root@RS ~]# echo "www.web11.com" >/home/wwwroot/11/index.html
[root@RS ~]# echo "www.web12.com" >/home/wwwroot/12/index.html

第3步:从 httpd 服务的配置文件中大约第 132 行处开始,分别追加写入 3 个基于主机名的虚拟主机网站参数,然后保存并退出。重启 httpd 服务使配置生效。

[root@RS ~]# vim /etc/httpd/conf/httpd.conf 
<VirtualHost 192.168.8.10>
    DocumentRoot /home/wwwroot/10
    ServerName www.web10.com
    <Directory /home/wwwroot/10>
    AllowOverride None
    Require all granted
    </Directory>
</VirtualHost>
<VirtualHost 192.168.8.10>
    DocumentRoot /home/wwwroot/11
    ServerName www.web11.com
    <Directory /home/wwwroot/11>
    AllowOverride None
    Require all granted
    </Directory>
</VirtualHost>
<VirtualHost 192.168.8.10>
    DocumentRoot /home/wwwroot/12
    ServerName www.web12.com
    <Directory /home/wwwroot/12>
    AllowOverride None
    Require all granted
    </Directory>
</VirtualHost>
[root@RS ~]# systemctl restart httpd   //重启服务
[root@RS ~]# systemctl enable httpd    //加入开机启动项
[root@RS ~]# firewall-cmd --permanent --zone=public --add-service=http   //防火墙放行
[root@RS ~]# firewall-cmd --reload     //重新加载防火墙

第4步:因为当前的网站数据目录还是在/home/wwwroot 目录中,因此还是必须要正确设置网站数据目录文件的 SELinux 安全上下文,使其与网站服务功能相吻合。最后用 restorecon 命令让新配置的 SELinux 安全上下文立即生效。

[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10
[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10/*
[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/11
[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/11/*
[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/12
[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/12/*
[root@RS ~]# restorecon -Rv /home/wwwroot

基于端口号

在使用 Apache 配置虚拟网站主机功能时,基于端口号的配置方式是最复杂的。因此不仅要考虑 httpd 服务程序的配置因素,还需要考虑到 SELinux 服务对新开设端口的监控。一般来说,使用 80、443、8080 等端口号来提供网站访问服务是比较合理的,如果使用其他端口号则会受到 SELinux 服务的限制。

第1步:分别在/home/wwwroot 中创建用于保存不同网站数据的 3 个目录,并向其中分别写入网站的首页文件。

[root@RS ~]# mkdir -p /home/wwwroot/6111
[root@RS ~]# mkdir -p /home/wwwroot/6222
[root@RS ~]# mkdir -p /home/wwwroot/6333
[root@RS ~]# echo "port : 6111" > /home/wwwroot/6111/index.html
[root@RS ~]# echo "port : 6222" > /home/wwwroot/6222/index.html
[root@RS ~]# echo "port : 6333" > /home/wwwroot/6333/index.html

第2步:在 httpd 服务配置文件的第 46 行~48 行 分别追加用于监听 6111、6222 和 6333端口的参数。

[root@RS ~]# vim /etc/httpd/conf/httpd.conf 
    45 Listen 80
    46 Listen 6111
    47 Listen 6222
    48 Listen 6333

第3步:从 httpd 服务的配置文件中大约第 134 行处开始,分别追加写入 3 个基于端口号的虚拟主机网站参数,然后保存并退出。重启 httpd 服务配置生效。

[root@RS ~]# vim /etc/httpd/conf/httpd.conf 
<VirtualHost 192.168.8.10:6111>
    DocumentRoot /home/wwwroot/6111
    ServerName www.zxbke.cn
    <Directory /home/wwwroot/6111>
    AllowOverride None
    Require all granted
    </Directory>
</VirtualHost>
<VirtualHost 192.168.8.10:6222>
    DocumentRoot /home/wwwroot/6222
    ServerName www.zxbke.cn
    <Directory /home/wwwroot/6222>
    AllowOverride None
    Require all granted
    </Directory>
</VirtualHost>
<VirtualHost 192.168.8.10:6333>
    DocumentRoot /home/wwwroot/6333
    ServerName www.zxbke.cn
    <Directory /home/wwwroot/6333>
    AllowOverride None
    Require all granted
    </Directory>
</VirtualHost>

第4步:因为把网站数据目录存放在/home/wwwroot 目录中,因此还是必须要正确设置网站数据目录文件的 SELinux 安全上下文,使其与网站服务功能相吻合。最后用 restorecon 命令让新配置的 SELinux 安全上下文立即生效。

[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111
[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111/*
[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6222
[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6222/*
[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6333
[root@RS ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6333/*
[root@RS ~]# restorecon -Rv /home/wwwroot

第5步:重启 httpd 服务后出现报错信息,这是因为 SELinux 服务检测到 6111、6222 和 6333 端口原本不属于 Apache 服务应该需要的资源,但现在却以 httpd 服务程序的名义监听使用了,所以 SELinux 会拒绝使用Apache 服务使用这 3 个端口。可以使用 semanage 命令查询并过滤出所有与 HTTP 协议相关且SELinux 服务允许的端口列表。

[root@RS ~]# semanage port -l | grep http
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989
//将这 3 个端口号手动添加进去。该操作会立即生效,而且在系统重启过后依然有效。设置好后再重启 httpd 服务程序
[root@RS ~]# semanage port -a -t http_port_t -p tcp 6111
[root@RS ~]# semanage port -a -t http_port_t -p tcp 6222
[root@RS ~]# semanage port -a -t http_port_t -p tcp 6333
se[root@RS ~]# semanage port -l | grep http
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      6333, 6222, 6111, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989

Apache 的访问控制

Apache 可以基于源主机名、源 IP 地址或源主机上的浏览器特征等信息对网站上的资源进行访问控制。它通过 Allow 指令允许某个主机访问服务器上的网站资源,通过 Deny 指令实现禁止访问。在允许或禁止访问网站资源时,还会用到 Order 指令,这个指令用来定义 Allow或 Deny 指令起作用的顺序,其匹配原则是按照顺序进行匹配,若匹配成功则执行后面的默认指令。比如“Order Allow, Deny”表示先将源主机与允许规则进行匹配,若匹配成功则允许访问请求,反之则拒绝访问请求。

匹配浏览器特征

第一步:先在服务器上的网站数据目录中新建一个子目录,并在这个子目录中创建一个包含 Successful 单词的首页文件。

[root@RS ~]# mkdir /var/www/html/server
[root@RS ~]# echo "Successful" >/var/www/html/server/index.html

第二步:打开 httpd 服务的配置文件,在第 161 行后面添加下述规则来限制源主机的访问。这段规则的含义是允许使用 Firefox 浏览器的主机访问服务器上的首页文件,除此之外的所有请求都将被拒绝。

[root@RS ~]# vim /etc/httpd/conf/httpd.conf 
<Directory "/var/www/html/server">
   SetEnvIf User-Agent "Firefox" ff=1
   Order allow,deny
   Allow from env=ff
</Directory>

匹配 IP 地址

例如只允许 IP 地址为 192.168.10.20 的主机访问网站资源,那么就可以在 httpd 服务配置文件的第 161 行后面添加下述规则。这样在重启 httpd 服务程序后再用本机(即服务器,其 IP 地址为 192.168.10.10)来访问网站的首页面时就会提示访问被拒绝了。

Order 指令,这个指令用来定义 Allow或 Deny 指令起作用的顺序,其匹配原则是按照顺序进行匹配,若匹配成功则执行后面的默认指令。比如“Order Allow, Deny”表示先将源主机与允许规则进行匹配,若匹配成功则允许访问请求,反之则拒绝访问请求。

[root@RS ~]# vim /etc/httpd/conf/httpd.conf 
<Directory "/var/www/html/server">
    Order allow,deny
    Allow from 192.168.8.20
</Directory>
原创文章,作者:張旭,如若转载,请注明出处:http://www.zxbke.cn/74.html/

发表评论