Linux 之 Apache服务

本章说明什么是 Web 服务程序,并对比主流的 Web 服务。记录 httpd 服务中的“全局配置参数”、“区域配置参数”和“注释信息”。本章还包括 SELinux 服务以及多个基于 httpd 服务功能的部署实验。

本章说明什么是 Web 服务程序,并对比主流的 Web 服务。记录 httpd 服务中的“全局配置参数”、“区域配置参数”和“注释信息”。本章还包括 SELinux 服务以及多个基于 httpd 服务功能的部署实验。

网站服务程序

我们平时访问的网站服务就是 Web 服务,它允许用户通过浏览器访问到互联网中各种资源,提供服务程序的 Web 服务器会通过 HTTP(超文本传输协议)或 HTTPS(安全超文本传输协议)把请求的内容传送给用户。

目前能够提供 Web 网络服务的程序有:

  • IIS(Internet Information Services,互联网信息服务) 是 Windows 系统中默认的 Web 服务程序,这是一款图形化的网站管理工具,但是,IIS 只能在 Windows 系统中使用
  • Nginx 一款轻量级的网站服务软件
  • Apache 目前拥有很高市场占有率的 Web 服务程序之一,支持基于 IP、域名及端口号的虚拟主机功能,支持多种认证方式,集成有代理服务器模块、安全 Socket 层(SSL),能够实时监视服务状态与定制日志消息,并有着各类丰富的模块支持

我们可以通过 YUM 仓库安装 httpd 服务

>>> yum install httpd
>>> systemctl start httpd
>>> systemctl enable httpd
>>> ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'

然后在浏览器中输入 http://127.0.0.1 就可以看到用于提供 Web 服务的 httpd 服务程序的默认页面了

配置服务文件参数

配置文件位置

httpd 服务程序的主要配置文件及存放位置如表所示:

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

配置信息类别

在 httpd 服务程序的主配置文件中,存在三种类型的信息:注释行信息、全局配置、区域配置

httpd

  • 全局配置参数

    作用于对所有的子站点

  • 区域配置参数

    单独针对于每个独立的子站点进行设置

httpd 常用的参数

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

DocumentRoot 定义网站数据的保存路径,向 /var/www/html 目录中写入一个 index 文件,替换掉 httpd 服务程序的默认首页面,该操作会立即生效

>>> echo "Welcome To LinuxProbe.Com" > /var/www/html/index.html
>>> firefox

修改保存网站数据的目录

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

    >>> mkdir /home/wwwroot
    >>> echo "The New Web Directory" > /home/wwwroot/index.html
    
  2. 修改 httpd 主配置文件

    • 将约第 119 行用于定义网站数据保存路径的参数 DocumentRoot 修改为/home/wwwroot,
    • 将约第 124 行用于定义目录权限的参数 Directory 后面的路径也修改为/home/wwwroot
    >>> vim /etc/httpd/conf/httpd.conf
    ………………省略部分输出信息………………
    113
    114 #
    115 # DocumentRoot: The directory out of which you will serve your
    116 # documents. By default, all requests are taken from this directory, bu t
    117 # symbolic links and aliases may be used to point to other locations.
    118 #
    119 DocumentRoot "/home/wwwroot"
    120
    121 #
    122 # Relax access to content within /var/www.
    123 #
    124 <Directory "/home/wwwroot">
    125 AllowOverride None
    126 # Allow open access:
    127 Require all granted
    128 </Directory>
    ………………省略部分输出信息………………
    
  3. 重新启动 httpd 服务

SELinnux 安全子系统

SELinux(Security-Enhanced Linux)是美国国家安全局开发的一个强制访问控制(MAC,Mandatory Access Control)的安全子系统。RHEL 7 系统使用 SELinux 技术的目的是为了让各个服务进程都受到约束,使其仅获取到本应获取的资源。

SELinux 从多方面监控违法行为:对服务程序的功能进行限制(SELinux 域限制可以确保服务程序做不了出格的事情);对文件资源的访问限制(SELinux 安全上下文确保文件资源只能被其所属的服务程序进行访问)。

SELinux 的三种配置模式

模式 说明
enforcing 强制启用安全策略模式,将拦截服务的不合法请求
permissive 遇到服务越权访问时,只发出警告而不强制拦截
disabled 对于越权的行为不警告也不拦截

虚拟网站主机功能

基于 IP 地址

基于主机域名

基于端口号

Apache 的访问控制