RH358配置Web服务器--使用Apache HTTPD配置基本Web服务器

简介: RH358配置Web服务器--使用Apache HTTPD配置基本Web服务器

RH358配置Web服务器–使用Apache HTTPD配置基本Web服务器

第八章开始介绍Aapche Httpd相关的内容,做为基础学习,这章节安排不错。

RH358专栏地址:https://blog.csdn.net/qq_41765918/category_11532281.html

1. 安装Apache HTTP服务器

Apache HTTP服务器,有时被其用户非正式地称为“Apache”,提供了一个完全可配置和可扩展的web服务器。它的功能可以通过模块和小段代码扩展到web服务器的框架并修改其功能。

在Red Hat Enterprise Linux 8上,Apache HTTP Server是由AppStream存储库中的httpd包提供的。当前版本是2.4.37。您可以直接安装该包,它会自动从httpd的默认模块流中获取它

[root@host ~]# yum install httpd

或者,您可以安装该模块流的特定配置文件。httpd模块支持三个配置文件:

  • common:提供生产就绪部署(默认)

  • minimal:提供可以运行Apache web服务器的最小软件包集

  • devel:提供修改HTTPD所需的包

[root@host ~]# yum module install httpd:2.4/common

httpd包的依赖项之一是httpd-tools。这个包包括管理工具,可以操作Apache密码映射和数据库,将Apache日志文件中的IP地址解析为主机名,以及对web服务器进行基准测试和压力测试。

httpd-manual包在您的web服务器http://localhost/manual上安装Apache HTTP Server的文档。

2. 配置Apache HTTP服务器

Apache HTTP Server读取它的配置如下:

  • /etc/httpd/conf/httpd.conf 主配置文件。

  • /etc/httpd/conf.d/ 它提供了补充配置文件,包括在httpd.conf,且文件名以**.conf** 结尾。

  • /etc/httpd/conf.modules.d/ 提供了用于动态加载Apache模块的补充配置文件,且文件名以.conf结尾。

下面的示例是缺省httpd.conf文件的演示,其中删除了注释。如果只想启动一个基本的web服务器,不需要立即做任何改变。

配置文件httpd .conf每一行包含一个指令。指令的参数之间用空格隔开。行尾的反斜杠字符 ( \ ) 表示指令继续下一行。井号(#)右边一行中的所有内容都是注释。指令在默认情况下影响主服务器,除非你将它们嵌套在一个只应用于服务器部分的section指令中,比如。

文件的第一部分设置了一些服务器操作的基本参数:

ServerRoot "/etc/httpd"   # 使用相对路径设置httpd用于存储配置中引用的任何文件的默认目录。
Listen 80  # httpd侦听新TCP连接的端口。语法Listen 1.2.3.4:80或Listen [2001:db8::1]:80可以用来限制httpd为一个特定的IP地址。允许多个Listen指令,但不能重叠。
Include conf.modules.d/*.conf   # 在配置的这一点上,按照文件名的顺序包含这些文件。这个特定的设置仅用于加载Apache模块。
User apache   # httpd以根用户身份启动,但随后放弃以这个用户身份运行的特权,以提高安全性。
Group apache  # httpd作为这个组运行。
ServerAdmin root@localhost  # 将此指令设置为有效的电子邮件地址,以帮助用户报告问题。不建议将此设置保留为默认的root@localhost。

文件的下一部分将设置应用到服务器的各个部分,影响从特定位置提供内容的方式,等等。

<Directory />
    AllowOverride none
    Require all denied
</Directory>
# <Directory>块设置了应用于指定目录及其子目录的配置指令。
# Allowoverride none忽略任何放置在这些目录中的.htaccess文件来覆盖这些设置。将此设置设置为任何其他设置都会造成性能损失,以及可能的安全后果。
# Require all denied导致web服务器拒绝提供来自此目录的内容,并返回一个HTTP/1.1 403 Forbidden错误给客户端。
# Require all granted授权客户端访问此目录中的内容。在普通内容树之外的目录上设置此选项可能会带来安全隐患。
# Options接受要为目录打开或关闭的选项列表。例如,如果目录被访问且没有index.html文件,Indexes选项将提供一个由目录内容列表组成的网页存在于该目录中。

DocumentRoot "/var/www/html"
# 网站所服务内容的基本目录。httpd必须能够读取这个目录,并且目录的< directory >块必须允许它提供内容。默认情况下是这样的。

<Directory "/var/www">
    AllowOverride None
    Require all granted
</Directory>

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>
# 如果Apache dir_module模块被加载(默认),那么应用这些指令。DirectoryIndex指令指定如果一个URL被请求指向一个目录和一个index.html文件存在于该目录中,将该文件提供给客户端。

<Files ".ht*">
    Require all denied
</Files>
# <Files>的工作方式类似于<Directory>块,但是应用于单个文件。在这种情况下,它阻止httpd提供敏感文件,如.htaccess和.htpasswd

下面的指令配置httpd日志如何访问页面和错误。

ErrorLog "logs/error_log"
# 将所有 httpd 错误记录到此⽂件中。路径是ServerRoot(/etc/httpd)⽬录:/etc/httpd/logs,同时也是软链接到 /var/log/httpd
LogLevel warn
<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
    CustomLog "logs/access_log" combined  # 对⽹站的所有访问都记录在此
</IfModule>

下面几个指令使目录能够运行 CGI 脚本来生成动态内容

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

最后几行配置 web 服务器可以为客户端提供内容的类型,以便客户端能够正确处理内容。最后一行加载 /etc/httpd/conf/conf.d中的其他配置文件,它们可以覆盖前面的配置

<IfModule mime_module>
    TypesConfig /etc/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8
<IfModule mime_magic_module>
    MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on
IncludeOptional conf.d/*.conf

重要:可以使用apachectl configtest来检查Apache配置文件的语法。

从自定义 DocumentRoot 目录提供 Web 内容

DocumentRoot指令控制httpd使用哪个目录来包含它的web内容。默认设置为/var/www/html。出于各种原因,可能希望将默认设置更改为系统上的另一个位置。如果这样做,请确保httpd可以访问新文档根目录的内容。

首先,确保常规文件系统权限允许apache用户或apache组读取该目录。但是,出于安全原因,两个用户都不能对该目录进行写入,这一点很重要。这种情况下的风险是,可能会使用非特权httpd进程的折衷来修改站点的内容。

其次,确保SELinux上下文允许httpd读取目录。通常,web内容应该用httpd _sys_content_t SELinux类型进行标记。(递归,及显式、隐式设置)

如果使用/var/www/html中的默认文件根目录,则使用/srv/www。或者在/srv中深一级的子目录中的www目录,比如/srv/directory/www,那么SELinux策略将为您正确地重新标记上下文。否则,您需要使用semanage fcontext向策略添加新规则。

[root@host ~]# semanage fcontext -a -t httpd_sys_content_t '/new/location(/.*)?'

可参考man semanage-fcontext

允许编辑Web内容

如果希望web开发人员能够直接编辑你的文档根目录的内容,你需要确保他们可以在这个目录下写文件。

一种方法是将这些用户放在web服务器上的一个组中,并授予该组对文档根目录及其内容的写权限。使用SGID权限来确保他们在该目录中创建的文件自动获得正确的权限。

[root@host ~]# mkdir -p -m 2775 /new/docroot

[root@host ~]# chgrp webmasters /new/docroot

另一种方法是设置该组,但在文档根上设置默认ACL,以授予它们写访问权限。

[root@host ~]# setfacl -R -m g:webmasters:rwX /var/www/html

[root@host ~]# setfacl -R -m d:g:webmasters:rwx /var/www/html

**重要:**大写的X位只在目录上设置可执行位,而不是目录和常规文件。这也适用于chmod,并且在递归地更改目录树的权限时非常有用

3. 启动Apache HTTP服务器

启动并启用系统服务httpd。

[root@host ~]# systemctl enable --now httpd

还需要确保客户端可以通过系统的防火墙联系httpd。对于基本的HTTP访问,确保防火墙服务HTTP是允许的,它打开了端口80/TCP。如果设置了一个启用tls的HTTPS站点(将在本课程后面介绍),请确保HTTPS服务也被允许,它将打开端口443/TCP。

[root@host ~]# firewall-cmd --permanent --add-service=http --add-service=https

[root@host ~]# firewall-cmd --reload

4. 课本练习

[student@workstation ~]$ lab web-basic start

  • 要求在servera机器上配置一个基本的web服务器。

  • 当URL为http://servera.lab.example.com/请求时,这个web服务器必须提供文本Hello Class!

  • 默认错误页面必须包括一个mailto:对电子邮件地址的引用webmaster@example.com。

  • 完整的Apache httpd手册必须在URL http://servera.lab.example.com/manual/

1. 安装httpd包和httpd-manual包。

[root@servera ~]# yum -y install httpd httpd-manual

2. 按要求修改各种

[root@servera ~]# vim /etc/httpd/conf/httpd.conf
ServerAdmin webmaster@example.com
[root@servera ~]# echo 'Hello Class!' > /var/www/html/index.html

[root@servera ~]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@servera ~]# firewall-cmd --permanent --add-service=http
[root@servera ~]# firewall-cmd --reload

3. 测试访问

[student@workstation ~]$ curl http://servera.lab.example.com
Hello Class!

完成实验

[student@workstation ~]$ lab web-basic finish

总结

  • 介绍Apache HTTP服务器。
  • 讲解如何配置Apache HTTP服务器。
  • 启动和简单演示。
  • 若喜欢金鱼哥的文章,顺手点个赞。也可点个关注,因为后续会不断上干货。

目录
相关文章
|
6天前
|
存储 弹性计算 大数据
阿里云服务器38元、99元、199元特惠详细配置、适用场景及购买条件介绍
阿里云特惠云服务器全解析:入门款:轻量应用服务器(2核2G200M带宽+40G ESSD盘)38元/年,日均0.1元。进阶款:经济型e实例(2核2G3M带宽+40G ESSD Entry盘)99元/年,续费同价。性能款:通用算力型u1实例(2核4G5M带宽+80G ESSD Entry盘)199元/年,企业独享,续费同价。三款配置覆盖个人建站、中小企业应用及轻量级企业服务,通过大数据精选用户常用配置,实现价格与性能的精准匹配。本文将详细解析这些阿里云服务器的配置、价格、限购条件以及购买指南,帮助大家更好地了解和选择适合自己的云服务器。
|
1月前
|
机器学习/深度学习 弹性计算 编解码
阿里云服务器4核8G配置:ECS实例规格、CPU型号及使用场景说明
阿里云4核8G服务器ECS提供多种实例规格,包括高主频计算型hfc8i、计算型c8i、通用算力型u1、经济型e等。各规格配备不同CPU型号与主频性能,适用于机器学习、数据分析、游戏服务器、Web前端等多种场景。用户可根据需求选择Intel或AMD处理器,如第四代Xeon或AMD EPYC系列,满足高性能计算及企业级应用要求。更多详情参见阿里云官方文档。
166 1
|
4天前
|
弹性计算 网络协议 安全
【转】如何配置服务器的端口映射?
本文详解端口映射原理及配置方法,涵盖家庭、企业与云环境,包含静态、动态与双向映射类型,并提供常见问题解决方案。
80 6
|
19天前
|
Windows
Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
42 2
|
12天前
|
存储 固态存储 安全
阿里云服务器最新租用价格:收费标准与2核4G/4核8G等热门配置活动价格参考
阿里云服务器租用价格是多少?阿里云服务器报价主要看所选云服务器的实例规格与带宽和云盘等配置,现在购买阿里云服务器,轻量应用服务器2核2G200M带宽38元1年,经济型e实例2核2G3M带宽99元1年,通用算力型u1实例2核4G5M带宽199元1年。本文为大家展示阿里云服务器最新的收费标准与活动价格情况,以供了解和参考。
|
1月前
|
机器学习/深度学习 弹性计算 编解码
阿里云服务器4核8G配置:ECS实例规格、CPU型号及使用场景说明
阿里云4核8G服务器ECS提供多种实例规格,如高主频计算型hfc8i、计算型c8i、通用算力型u1、经济型e等。各规格基于不同CPU型号与主频性能设计,适用于机器学习、数据分析、游戏服务器、网站应用等多种场景。用户可根据实际需求选择适合的配置,满足高性能计算或经济性要求。更多详情及参数说明可参考官方文档。
335 4
|
1月前
|
弹性计算 数据挖掘 测试技术
阿里云服务器2核8G、4核16G、8核32G配置热门实例性能、适用场景对于与选择参考
2025年,阿里云针对2核8G、4核16G、8核32G这三种主流配置,推出了一系列极具吸引力的活动,为用户提供了多样化的选择。目前,2核8G配置的云服务器活动价格为522.79元/年起,4核16G配置的云服务器活动价格为2149.92元/年起,而8核32G配置的云服务器活动价格则为4249.44元/年起。这些价格涵盖了经济型e、通用算力型u1、通用型g8i、通用型g7和通用型g8y等不同实例规格,为用户提供了多样化的选择。本文将对这些配置热门实例规格的实例性能、适用场景和活动价格做个对比,以供选择和参考。
|
25天前
|
数据采集 人工智能 BI
MyEMS能源管理系统后台配置-邮件服务器设置
本文介绍其邮件服务器配置方法。
24 0
|
2月前
|
存储 弹性计算 应用服务中间件
阿里云服务器2核4G、4核8G、8核16G配置主要适用场景及最新活动价格参考
云服务器现在已成为企业和个人开展业务、搭建应用不可或缺的基础设施,在众多配置中,2核4G、4核8G和8核16G是广大用户选择较多的配置,目前阿里云服务器通用算力型u1实例2核4G5M带宽企业用户购买的价格只要199元1年,且续费价格不变,4核8G目前的活动价格为955.58元1年起,8核16G配置选择计算型c8y实例的活动价格为3815.03元1年起。本文将为大家解析2025年截止目前阿里云服务器中2核4G、4核8G、8核16G配置的活动报价,帮助用户了解最新价格信息,以及不同配置的主要适用场景,以供参考和选择。
|
2月前
|
存储 弹性计算 安全
阿里云服务器38元、99元、199元配置、适用场景区别及选择参考
目前,阿里云有多款特价云服务器产品,轻量云服务器2核2G200M峰值带宽38元一年,经济型e实例云服务器2核2G3M带宽99元1年、4核16G10M云服务器70元1个月、210元3个月,8核32G10M带宽160元1个月、480元3个月,通用算力型u1实例2核4G5M带宽199元一年、4核8G云服务器955元一年。本文将详细介绍阿里云的三款特价云服务器产品:38元的轻量应用服务器、99元的云服务器ECS经济型e实例,以及199元的云服务器ECS u1实例,帮助用户更好地了解这些产品的规格、配置、适用场景及购买资格和注意事项。

热门文章

最新文章

推荐镜像

更多