Apache HTTP 服务器安装指南

Red Hat JBoss Core Services 2.4.37

用于 Red Hat JBoss 中间件产品。

摘要

在支持的操作系统中安装、升级和配置红帽 JBoss Core Services Apache HTTP 服务器。

对红帽文档提供反馈

我们非常感谢您对我们的技术内容提供反馈,并鼓励您告诉我们您的想法。如果您想添加评论,提供见解、纠正拼写错误甚至询问问题,您可以在文档中直接这样做。

注意

您必须有一个红帽帐户并登录到客户门户网站。

要从客户门户网站提交文档反馈,请执行以下操作:

  1. 选择 Multi-page HTML 格式。
  2. 点文档右上角的 反馈 按钮。
  3. 突出显示您要提供反馈的文本部分。
  4. 点高亮文本旁的添加反馈对话框。
  5. 在页面右侧的文本框中输入您的反馈,然后单击 Submit

每次提交反馈时,我们都会自动创建跟踪问题。打开在点 Submit 后显示的链接,并开始监视问题或添加更多注释。

感谢您的宝贵反馈。

第 1 章 JBoss Core Services Apache HTTP 服务器安装简介

Red Hat JBoss Core Services 是红帽 JBoss 中间件产品的一组补充软件。Red Hat JBoss Core Services 提供补充软件,如 Apache HTTP 服务器,它们通常用于多个 JBoss 中间件产品。此补充软件打包在红帽 JBoss 核心服务下,以便加快更新发布速度,并提供更加一致的更新体验。

有关 Red Hat JBoss Core Services 支持的组件的完整列表,请查看 Core Services Apache HTTP Server component Details 网页。

注意

在尝试访问 Core Services Apache HTTP Server 组件详情 网页前,您必须确定您有有效的红帽订阅,并登录到红帽客户门户网站。

1.1. JBoss Core Services Apache HTTP Server

红帽 JBoss 核心服务 Apache HTTP 服务器在多个红帽 JBoss 中间件产品中使用。Apache HTTP 服务器处理 Web 客户端通过 Hypertext 传输协议(HTTP)发送的请求。

在旧的 JBoss 产品版本中,Apache HTTP 服务器由每个 JBoss 产品分别分发。从以下产品版本开始,每个 JBoss 中间件产品都使用 Apache HTTP 服务器的 JBoss Core Services 发行版本:

  • Red Hat JBoss Enterprise Application Platform(JBoss EAP)7.0 及更新的版本
  • Red Hat JBoss Web Server 3.1 and later versions
重要

JBoss 核心服务和 Red Hat Enterprise Linux 提供 Apache HTTP 服务器的独立发行版本。

考虑 JBoss Core Services (JBCS)和 Red Hat Enterprise Linux (RHEL)提供的 Apache HTTP 服务器发行版本之间的以下区别:

  • 您可以从存档文件或 RPM 软件包安装 JBCS Apache HTTP 服务器。您只能从 RPM 软件包安装 RHEL Apache HTTP 服务器。
  • JBCS Apache HTTP 服务器提供 mod_security 模块、mod_proxy_uwsgi 模块和 loadbalancing 模块 mod_jkmod_cluster
  • JBCS Apache HTTP 服务器不提供或支持 mod_php 模块。RHEL Apache HTTP 服务器支持 mod_php 模块。

1.2. JBoss Core Services Apache HTTP Server 支持的操作系统

JBoss Core Services Apache HTTP 服务器支持不同版本的 Red Hat Enterprise Linux 和 Microsoft Windows 操作系统。

1.3. JBoss Core Services Apache HTTP 服务器的安装方法

您可以使用每个平台可用的存档安装文件,在支持的 Red Hat Enterprise Linux 和 Microsoft Windows 系统上安装 JBoss Core Services Apache HTTP 服务器。您还可以使用 RPM 软件包在支持的 Red Hat Enterprise Linux 系统上安装 JBoss Core Services Apache HTTP 服务器。

1.4. 升级到 JBoss Core Services Apache HTTP Server 2.4.37

如果您之前已从存档文件安装了 JBoss Core Services Apache HTTP 服务器的早期版本,您可以升级到 JBoss Core Services Apache HTTP Server 2.4.37 版本。

升级过程包括以下步骤:

  1. 安装 Apache HTTP 服务器 2.4.37。
  2. 设置 Apache HTTP 服务器 2.4.37。
  3. 删除较早版本的 Apache HTTP 服务器。

先决条件

  • 在 Windows Server 上具有管理访问权限。
  • 您使用的是 JBoss Core Services Apache HTTP 服务器 2.4.29 或更早版本的系统,是从 .zip 归档安装的。

流程

  1. 关闭 Apache HTTP 服务器 2.4.29 的任何正在运行的实例。
  2. 备份 Apache HTTP 服务器 2.4.29 安装和配置文件。
  3. 使用 .zip 安装方法安装 Apache HTTP 服务器 2.4.37。如需更多信息 请参阅本节末尾的附加资源。
  4. 将您的配置从 Apache HTTP 服务器版本 2.4.29 迁移到 2.4.37 版本。

    注意

    自 Apache HTTP 服务器 2.4.29 发行版本以来,JBoss Core Services 配置文件可能会有所变化。更新 2.4.37 版本配置文件,而不是用不同版本(如 Apache HTTP Server 2.4.29)的配置文件覆盖这些文件。

  5. 删除 Apache HTTP 服务器 2.4.29 根目录。

1.5. Red Hat Enterprise Linux 7 和 Red Hat Enterprise Linux 8 之间的主要区别

本节概述 Red Hat Enterprise Linux 8 中引入的一些主要变化。

删除的安全功能
在 Red Hat Enterprise Linux 7 中弃用了 all-numeric 用户和组群名称,其支持会在 Red Hat Enterprise Linux 8 中完全删除。
内存管理
在 Red Hat Enterprise Linux 7 中,现有内存总线具有 48/46 位虚拟/物理内存寻址,Linux 内核实施 4 级页面表来管理这些虚拟地址到物理地址。通过扩展地址范围,Red Hat Enterprise Linux 8 中的内存管理支持实施 5 级页表,以允许处理扩展地址范围。在 Red Hat Enterprise Linux 8 中,默认禁用对 5 级页表的支持,即使系统支持此功能。
XFS 支持
Red Hat Enterprise Linux 7 可以使用共享复制时写入数据扩展以只读模式挂载 XFS 文件系统。在 Red Hat Enterprise Linux 8 中,XFS 文件系统支持共享的 copy-on-write 数据扩展功能。这个功能可让两个或者多个文件共享一组通用的数据块。
NFS 配置
在 Red Hat Enterprise Linux 7 中,NFS 配置位于 /etc/sysconfig/nfs 文件中。在 Red Hat Enterprise Linux 8 中,NFS 配置位于 /etc/nfs.conf 文件中。
注意

有关 Red Hat Enterprise Linux 7 和 Red Hat Enterprise Linux 8 之间的区别的详情,请参阅使用 RHEL 8 的注意事项

1.6. 其他资源(或后续步骤)

第 2 章 从存档文件在 RHEL 上安装 JBoss Core Services Apache HTTP 服务器

您可以通过存档文件或 RPM 软件包在 Red Hat Enterprise Linux 上安装 JBoss Core Services Apache HTTP 服务器。如果要从存档文件安装 Apache HTTP 服务器,您可以从红帽客户门户网站上的 软件 下载和提取 Apache HTTP 服务器。必须为原始 2.4.37 版本安装基本存档文件。您还可以安装最新的服务包版本(若有)。

当您从存档文件安装 Apache HTTP 服务器时,您可以以不同的方式管理产品。例如,您可以在系统启动时使用系统守护进程,或者从命令行管理 Apache HTTP 服务器。

注意

在 Red Hat Enterprise Linux 7 和 Red Hat Enterprise Linux 8 中下载 Apache HTTP 服务器归档文件的步骤不同。

2.1. 在 RHEL 上下载和提取 Apache HTTP 服务器存档文件

您可以从红帽客户门户网站上的 Software Downloads 页面下载 Apache HTTP 服务器归档文件。根据您使用的 Red Hat Enterprise Linux(RHEL)版本,下载存档文件的步骤稍有不同。

请考虑以下指南:

  • 如果使用 RHEL 7,您必须从 Software Downloads 页面的 Releases 选项卡下载原始 JBoss Core Services Apache HTTP Server 2.4.37 版本的存档文件。您还可以从 Software Downloads 页面 的安全公告 选项卡中下载最新的服务包版本。
  • 如果使用 RHEL 8,您必须从 Software Downloads 页面 的安全公告 选项卡中下载原始 JBoss Core Services Apache HTTP Server 2.4.37 版本的存档文件。您还可以从 安全公告 选项卡中下载最新的服务包版本。
注意

您可以安装带有非 root 权限的存档文件,只要您具有对预期安装目录的写入权限。

先决条件

  • 已安装 elinkskrb5-workstationmailcap 软件包。

    如果要安装这些软件包,以 root 用户身份运行以下命令:

    # yum install elinks krb5-workstation mailcap

流程

  1. 打开浏览器并登录到红帽客户门户网站上的 软件下载 页面。
  2. 在产品 下拉菜单中,选择 Apache HTTP Server
  3. Version 下拉菜单中选择正确的 JBoss Core Services 版本。
  4. 根据您使用的 RHEL 版本,执行以下步骤之一:

    1. 如果您使用 RHEL 7,请在 Releases 选项卡中点与您系统平台和架构匹配的 Red Hat JBoss Core Services Apache HTTP Server 归档文件旁边的 下载
    2. 如果使用 RHEL 8,点 安全公告 选项卡。然后点击 Red Hat JBoss Core Services Apache HTTP Server 2.4.37 Patch 06 for RHEL 8 x86_64 文件旁边的 Download

      注意

      Red Hat JBoss Core Services Apache HTTP Server 2.4.37 Patch 06 for RHEL 8 x86_64 文件是用于在 RHEL 8 上安装 Apache HTTP 服务器的基本归档文件。

  5. 将下载的存档文件提取到安装目录中。

    注意

    在 Red Hat Enterprise Linux 系统中,在 /opt/ 目录中安装 Apache HTTP Server。

    您提取存档时会创建 jbcs-httpd24-2.4/httpd 目录。该目录是 Apache HTTP 服务器的顶级目录。本文档将 jbcs-httpd24-2.4/httpd 目录称为 HTTPD_HOME

  6. 要安装最新的 service pack 版本(若有),请执行以下步骤:

    1. 在 Software Downloads 页面上,点击 Security Advisories 选项卡。
    2. 安全公告 选项卡中,点最新红帽 JBoss Core Services Apache HTTP Server Patch 归档文件旁边的 下载文件,该文件与您的系统平台和架构匹配。

      例如,如果您要在 Red Hat Enterprise Linux 7 上安装 Apache HTTP Server 2.4.37 的 Service Pack 10 版本,请点击 Red Hat JBoss Core Services Apache HTTP Server 2.4.37 Patch 10 for RHEL 7 x86_64 文件的 下载

      注意

      服务包版本是累积的。通过下载最新的服务包版本,您还会自动安装任何以前的服务包版本。

2.2. 通过命令行管理归档安装的 Apache HTTP 服务器配置

当您从 Red Hat Enterprise Linux 上的归档文件安装 JBoss Core Services Apache HTTP Server 时,您可以直接从命令行启动和停止 Apache HTTP 服务器。在您可以从命令行运行 Apache HTTP 服务器前,您必须执行以下一系列配置任务:

2.2.1. 创建 Apache 用户

首次从命令行运行 Apache HTTP 服务器之前,您必须创建 apache 用户及其父组。您还必须将 Apache 目录的所有权分配给 apache 用户,以便该用户可以运行 Apache HTTP 服务器。

注意

您必须以 root 用户身份执行此流程中的所有步骤。

流程

  1. 在命令行中,前往 HTTPD_HOME 目录。
  2. 运行以下命令来创建 apache 用户组:

    # groupadd -g 48 -r apache
  3. 要在 apache 用户组中创建 apache 用户,请输入以下命令:

    # /usr/sbin/useradd -c "Apache" -u 48 -g apache -s /sbin/nologin -r apache
  4. 要为 apache 用户分配 Apache 目录的所有权,请输入以下命令:

    # chown -R apache:apache *

验证

  1. 要验证 apache 用户是否为目录的所有者,请输入以下命令:

    # ls -l

2.2.2. 禁用或启用 SSL 支持

运行 Apache HTTP 服务器前,您可以选择通过重命名 SSL 配置文件来禁用或启用 SSL 支持。Apache HTTP 服务器默认支持 SSL。

流程

  1. 前往 HTTPD_HOME/conf.d/ 目录。
  2. 要启用或禁用 SSL,请执行以下步骤之一:

    • 如果您要禁用 SSL,将 ssl.conf 重命名为 ssl.conf.disabled
    • 如果要重新启用 SSL,将 ssl.conf.disabled 重命名为 ssl.conf

2.2.3. 运行 Apache HTTP 服务器安装后脚本

首次从命令行运行 Apache HTTP 服务器之前,您必须运行 Apache HTTP 服务器安装后脚本。

流程

  1. 在命令行中,前往 HTTPD_HOME 目录。
  2. 使用以下命令:

     ./.postinstall

2.3. 从存档文件安装时,从命令行启动 Apache HTTP 服务器

当您从 Red Hat Enterprise Linux 上的归档文件安装 JBoss Core Services Apache HTTP Server 时,您可以直接从命令行启动 Apache HTTP 服务器。

流程

  1. 在命令行中,前往 HTTPD_HOME/sbin/ 目录。
  2. 以 root 用户身份输入以下命令:

     ./apachectl start

2.4. 从存档文件安装时,从命令行停止 Apache HTTP 服务器

当您从 Red Hat Enterprise Linux 上的归档文件安装 JBoss Core Services Apache HTTP 服务器时,您可以直接从命令行停止运行 Apache HTTP 服务器的运行实例。

先决条件

流程

  1. 在命令行中,前往 HTTPD_HOME/sbin/ 目录。
  2. 以 root 用户身份输入以下命令:

     ./apachectl stop

2.5. 从命令行没有 root 访问权限运行 Apache HTTP 服务器

当您从 Red Hat Enterprise Linux 上的归档文件安装 JBoss Core Services Apache HTTP Server 时,您可以直接从命令行启动 Apache HTTP 服务器时,无需 root 访问权限,如 apache 用户。

流程

  1. 停止 Apache HTTP 服务器的所有实例:
  2. http 侦听端口设置为 中大于 1024

    Listen 2080
    ServerName <hostname>:2080
  3. https 监听端口设置为 中大于 1024

    Listen 2443
  4. 更改 的所有权
  5. 更改 运行的所有权
  6. 验证 httpd 是否只在 apache 用户下运行,而不是 rootapache 用户:

    $ ps -eo euser,egroup,comm | grep httpd

    该命令生成以下输出类型:

    apache   apache   httpd
    apache   apache   httpd
    apache   apache   httpd
    ...
    重要

    限制 apache 用户的文件权限。这有助于防止以下情况:

    • 通过网站用户未经授权访问或修改文件和目录
    • 对 Apache HTTP 服务器配置文件的不需要更改

2.6. 从存档文件安装时使用 systemd 管理 Apache HTTP 服务器

当您从 Red Hat Enterprise Linux 上的存档文件安装 Apache HTTP 服务器时,您可以使用系统守护进程来执行管理任务。将 Apache HTTP 服务器与系统守护进程一起使用提供了一种在系统启动时启动 Apache HTTP 服务器服务的方法。系统守护进程还提供 start、stop 和 status 检查功能。

Red Hat Enterprise Linux 7 和 Red Hat Enterprise Linux 8 的默认系统守护进程是 systemd

重要

Red Hat Enterprise Linux 6 不再被支持,并随后从文档中被删除。

先决条件

流程

  1. 要确定哪个系统守护进程正在运行,请输入以下命令:

    $ ps -p 1 -o comm=

    如果 systemd 正在运行,则会显示以下输出:

    systemd
  2. 要为 systemd 设置 Apache HTTP 服务器,以 root 用户身份运行 .postinstall.systemd 脚本:

    # cd HTTPD_HOME
    # sh httpd/.postinstall.systemd
  3. 要使用 systemd 控制 Apache HTTP 服务器,您可以以 root 用户身份执行以下步骤:

    • 使用 systemd 启用 Apache HTTP 服务器服务在系统引导时启动:

      # systemctl enable jbcs-httpd24-httpd.service
    • 使用 systemd 启动 Apache HTTP 服务器:

      # systemctl start jbcs-httpd24-httpd.service
    • 使用 systemd 停止 Apache HTTP 服务器:

      # systemctl stop jbcs-httpd24-httpd.service
    • 使用 systemd 验证 Apache HTTP 服务器的状态:

      # systemctl status jbcs-httpd24-httpd.service
      注意

      任何用户都可以运行 status 操作。

重要

运行这些命令后,您可以运行以下命令来恢复受 .postinstall. sysv 或 .postinstall.systemd 影响的更改:

# cd HTTPD_HOME
# sh httpd/.postinstall.services.cleanup

其他资源

2.7. Apache HTTP 服务器的 SELinux 策略

您可以使用 Security-Enhanced Linux(SELinux)策略为 Apache HTTP 服务器定义访问控制。这些策略是一组规则,它们决定了产品的访问权限。

2.7.1. SELinux 策略信息

SELinux 安全模型由内核强制,并确保应用程序对文件系统位置和端口等资源具有有限的访问权限。SELinux 策略可确保任何有破坏或不良的进程都受到限制或阻止运行。

Apache HTTP 服务器安装中的 jbcs-httpd24-httpd-selinux 软件包提供了一个 mod_cluster 策略。下表包含有关提供的 SELinux 策略的信息。

表 2.1. RPM 和默认 SELinux 策略

Name端口信息策略信息

mod_cluster

httpd_port_t 添加两个端口( TCP6666,用于 UDP的 6666),以允许 httpd 进程使用它们。

安装后脚本配置 /var/cache/mod_cluster 的上下文映射,以启用 httpd 进程在此位置写入。

其他资源

2.7.2. 为 Apache HTTP 服务器归档安装安装 SELinux 策略

在本发行版本中,存档软件包提供 SELinux 策略。.postinstall.selinux 文件包含在 root Apache HTTP Server 文件夹中。如果需要,您可以运行 .postinstall.selinux 脚本。

重要

默认情况下,Apache HTTP 服务器提供的 SELinux 策略不活跃,且 Apache HTTP 服务器进程在 unconfined_t 域中运行。这个域不受限制进程。如果您选择不启用提供的 SELinux 策略,请限制 apache 用户的文件访问权限,以便 apache 用户只能访问 Apache HTTP 服务器运行时所需的文件和目录。

流程

  1. 安装 selinux-policy-devel 软件包:

    yum install -y selinux-policy-devel
  2. 运行 .postinstall.selinux 脚本:

    cd <httpd_home>
    sh .postinstall.selinux
  3. 进行并安装 SELinux 模块:

    cd <httpd_home>/selinux/
    make -f /usr/share/selinux/devel/Makefile
    semodule -i jbcs-httpd24-httpd.pp
  4. 为 Apache HTTP 服务器应用 SELinux 上下文:

    restorecon -r <httpd_home>
  5. 为 Apache HTTP 服务器所需端口添加访问权限:

    semanage port -a -t http_port_t -p tcp 6666
    semanage port -a -t http_port_t -p udp 23364
  6. 启动 Apache HTTP 服务器服务:

    <httpd_home>/sbin/apachectl start
  7. 检查预期 httpd_t 正在运行的进程的上下文:

    $ ps -eZ | grep httpd | head -n1
    
    unconfined_u:unconfined_r:httpd_t:s0-s0:c0.c1023 2864 ? 00:00:00 httpd
  8. 验证 httpd 目录的上下文。例如:

    ls -lZ <httpd_home>/logs/

第 3 章 从 RPM 软件包在 RHEL 上安装 JBoss Core Services Apache HTTP 服务器

您可以通过存档文件或 RPM 软件包在 Red Hat Enterprise Linux 上安装 JBoss Core Services Apache HTTP 服务器。从 RPM 软件包安装 Apache HTTP 服务器将 Apache HTTP 服务器作为服务安装。

Red Hat Subscription Management 提供了用于 JBoss Core Services Apache HTTP 服务器的 RPM 安装软件包。RPM 安装选项可用于 Red Hat Enterprise Linux 7 和 Red Hat Enterprise Linux 8。

重要

Red Hat Enterprise Linux 6 不再被支持,并随后从文档中被删除。

3.1. 将订阅附加到 Red Hat Enterprise Linux

在为 Apache HTTP 服务器下载并安装 RPM 软件包前,您必须将您的系统注册到 Red Hat Subscription Management,并订阅相应的 Content Delivery Network(CDN)软件仓库。然后,您可以执行一些验证步骤以确保订阅提供所需的 CDN 软件仓库。

流程

  1. 登录到 Red Hat Subscription Management 网页。
  2. Systems 标签页。
  3. 点您要为其添加订阅的系统的 Name
  4. Details 选项卡更改为 Subscriptions 选项卡,然后单击 Attach Subscriptions
  5. 选中您要附加的订阅旁边的复选框,然后单击 Attach Subscriptions

验证

  1. 登录 Red Hat Subscriptions 网页。
  2. Subscription Name 列中,点您要选择的订阅。
  3. 提供产品下,您需要 Red Hat JBoss Core Services

其他资源

3.2. 使用 YUM 从 RPM 软件包安装 Apache HTTP 服务器

您可以使用 YUM 软件包管理器从 Red Hat Enterprise Linux 上的 RPM 软件包安装 Apache HTTP 服务器。

先决条件

流程

  1. 要为您的操作系统版本订阅 Apache HTTP 服务器 CDN 软件仓库,以 root 用户身份运行以下命令:

    # subscription-manager repos --enable <repository>
    注意

    如果您使用 Red Hat Enterprise Linux 7,将 < repository&gt; 替换为 jb-coreservices-1-for-rhel-7-server-rpms

    如果您使用 Red Hat Enterprise Linux 8,将 < repository&gt; 替换为 jb-coreservices-1-for-rhel-8-x86_64-rpms

  2. 要安装 Apache HTTP 服务器,以 root 用户身份输入以下命令:

    # yum groupinstall jbcs-httpd24
    注意

    随着 Red Hat Enterprise Linux 8 的发布,JBCS 不再使用 yum groupinstall 命令。有关在 Red Hat Enterprise Linux 8 中配置 HTTPD 的详情,请参考 部署不同类型的服务器:设置 Apache HTTP Web Server

3.3. 在 RHEL 8 中使用 mod_jk 和 mod_cluster

您可以使用 YUM 软件包管理器在 Red Hat Enterprise Linux 8 上安装 JBoss Core Services(JBCS) mod_jkmod_clustermod_rtmod_bmx 模块。

流程

  1. 要安装 httpd,以 root 用户身份输入以下命令:

    $ yum install httpd
  2. 要安装 mod_jkmod_clustermod_rtmod_bmx 模块,以 root 用户身份运行以下命令:

    $ yum install jbcs-httpd24-mod_jk-ap24
    
    $ yum install jbcs-httpd24-mod_cluster-native
    
    $ yum install jbcs-httpd24-mod_bmx
    
    $ yum install jbcs-httpd24-mod_rt
    注意

    当在 Red Hat Enterprise Linux 8 上安装 Apache HTTP Server(httpd)时,基础操作系统模块位于 /usr/lib64/httpd/modules 目录中。JBCS 模块,如 mod_jkmod_clustermod_rtmod_bmx 目前位于 /opt/rh/jbcs/root/usr/lib64/httpd/modules 目录中。这些 JBCS 模块遵循用于命名、目录和前缀的所有 JBCS 规则。

  3. 要使用这些模块,请执行以下步骤之一:

    • 创建或修改配置文件以添加 LoadModule 命令。例如:

      LoadModule jk_module /opt/rh/jbcs/root/usr/lib64/httpd/modules/mod_jk.so
    • 将已安装的 JBCS 模块的目录包含在 JBCS_HOME/httpd/conf.d 目录中。
注意
  • 使用 mod_proxy_cluster 时,您必须禁用 mod_proxy_balancer
  • 在使用 mod_proxy _ cluster 时,您必须启用 mod_proxy_proxy
  • 如果您希望 mod_proxy_cluster 使用 AJP,则必须禁用 proxy_ajp_module

3.4. 配置 Apache HTTP 服务器安装时从 RPM 安装

从 RPM 软件包安装 Apache HTTP 服务器时,您可以在运行 Apache HTTP 服务器前选择性地删除 SSL 支持。Apache HTTP 服务器默认支持 SSL。您可以通过删除 mod_ssl 软件包来选择删除 SSL 支持。

流程

  • 在命令行中以 root 用户身份输入以下命令:

    # yum remove jbcs-httpd24-mod_ssl
    注意

    随着 Red Hat Enterprise Linux 8 的发布,JBCS 不再使用 yum groupinstall 命令。有关在 Red Hat Enterprise Linux 8 中配置 HTTPD 的详情,请参考 部署不同类型的服务器:设置 Apache HTTP Web Server

3.5. 从 RPM 安装时从命令行启动 Apache HTTP 服务器

当您从 RPM 软件包安装 JBoss Core Services Apache HTTP Server 时,您可以使用命令行启动 Apache HTTP 服务器。

流程

  • 在命令行中,以 root 用户身份启动 Apache HTTP Server 服务:

    • Red Hat Enterprise Linux 7:

      # systemctl start jbcs-httpd24-httpd.service
      注意

      随着 Red Hat Enterprise Linux 8 的发布,JBCS 不再使用 yum groupinstall 命令。有关在 Red Hat Enterprise Linux 8 中配置 HTTPD 的详情,请参考 部署不同类型的服务器:设置 Apache HTTP Web Server

重要

Red Hat Enterprise Linux 6 不再被支持,并随后从文档中被删除。

3.6. 从 RPM 安装时,从命令行停止 Apache HTTP 服务器

当您从 RPM 软件包安装 JBoss Core Services Apache HTTP Server 时,您可以使用命令行停止 Apache HTTP 服务器。

流程

  • 在命令行中,以 root 用户身份停止 Apache HTTP 服务器服务:

    • Red Hat Enterprise Linux 7:

      # systemctl stop jbcs-httpd24-httpd.service
      注意

      随着 Red Hat Enterprise Linux 8 的发布,JBCS 不再使用 yum groupinstall 命令。有关在 Red Hat Enterprise Linux 8 中配置 HTTPD 的详情,请参考 部署不同类型的服务器:设置 Apache HTTP Web Server

重要

Red Hat Enterprise Linux 6 不再被支持,并随后从文档中被删除。

3.7. 将 Apache HTTP Server 服务配置为在系统启动时启动

当您从 RPM 软件包安装 JBoss Core Services Apache HTTP 服务器时,您可以将 Apache HTTP Server 服务配置为在系统启动时启动。

流程

  • 要在系统启动时启用 Apache HTTP 服务器服务在系统启动时启动,请输入以下命令:

    • Red Hat Enterprise Linux 7:

      # systemctl enable jbcs-httpd24-httpd.service
重要

Red Hat Enterprise Linux 6 不再被支持,并随后从文档中被删除。

3.8. Apache HTTP 服务器的 SELinux 策略

您可以使用 Security-Enhanced Linux(SELinux)策略为 Apache HTTP 服务器定义访问控制。这些策略是一组规则,它们决定了产品的访问权限。

3.8.1. SELinux 策略信息

SELinux 安全模型由内核强制,并确保应用程序对文件系统位置和端口等资源具有有限的访问权限。SELinux 策略可确保任何有破坏或不良的进程都受到限制或阻止运行。

Apache HTTP 服务器安装中的 jbcs-httpd24-httpd-selinux 软件包提供了一个 mod_cluster 策略。下表包含有关提供的 SELinux 策略的信息。

表 3.1. RPM 和默认 SELinux 策略

Name端口信息策略信息

mod_cluster

httpd_port_t 添加两个端口( TCP6666,用于 UDP的 6666),以允许 httpd 进程使用它们。

安装后脚本配置 /var/cache/mod_cluster 的上下文映射,以启用 httpd 进程在此位置写入。

其他资源

3.8.2. 为 Apache HTTP 服务器 RPM 安装启用 SELinux 策略

当您从 RPM 软件包安装 JBoss Core Services Apache HTTP 服务器时,jbcs-httpd2.4-httpd-selinux 软件包会为 Apache HTTP 服务器提供 SELinux 策略。jbcs-httpd2.4-httpd-selinux 软件包位于 jb-coreservices-1-for-rhel-7-server-rpmsjb-coreservices-1-for-rhel-6-server-rpms Content Delivery Network(CDN)存储库。

流程

  • 为您使用的 Red Hat Enterprise Linux 版本安装 jbcs-httpd2.4-httpd-selinux 软件包。

第 4 章 在 Microsoft Windows 上安装 JBoss Core Services Apache HTTP Server

您可以从红帽客户门户网站上的 软件下载 页在 Microsoft Windows 上安装 JBoss Core Services Apache HTTP Server。

4.1. 在 Microsoft Windows 上下载和提取 Apache HTTP 服务器存档文件

您可以从红帽客户门户网站上的 Software Downloads 页面下载 Apache HTTP 服务器归档文件。您必须从 Software Downloads 页面的 Releases 选项卡下载原始 JBoss Core Services Apache HTTP Server 2.4.37 版本的存档文件。您还可以从 Software Downloads 页面 的安全公告 选项卡中下载最新的服务包版本。

注意

您可以安装带有非 root 权限的存档文件,只要您具有对预期安装文件夹的写入权限。

先决条件

  1. 打开浏览器并登录到红帽客户门户网站上的 软件下载 页面。
  2. 在产品 下拉菜单中,选择 Apache HTTP Server
  3. Version 下拉菜单中选择正确的 JBoss Core Services 版本。
  4. Releases 选项卡上,点与您系统的平台和架构匹配的 Red Hat JBoss Core Services Apache HTTP Server 归档文件旁边的 下载
  5. 将下载的存档文件提取到安装目录中。

    注意

    在 Microsoft Windows 系统中,在 C:\Program Files 目录中安装 Apache HTTP 服务器。

    当您提取存档时,会创建 jbcs-httpd24-2.4 目录。该目录是 Apache HTTP 服务器的顶级目录。本文档将 jbcs-httpd24-2.4 目录称为 HTTPD_HOME

  6. 要安装最新的 service pack 版本,请执行以下步骤:

    1. 在 Software Downloads 页面上,点击 Security Advisories 选项卡。
    2. 安全公告 选项卡中,点最新红帽 JBoss Core Services Apache HTTP Server Patch 归档文件旁边的 下载文件,该文件与您的系统平台和架构匹配。

      例如,如果您要在 Microsoft Windows 上安装 Apache HTTP Server 2.4.37 的 Service Pack 10 版本,请点击 Red Hat JBoss Core Services Apache HTTP Server x86_64 文件的 下载

      注意

      服务包版本是累积的。通过下载最新的服务包版本,您还会自动安装任何以前的服务包版本。

4.2. Microsoft Windows 上的 Apache HTTP Server 配置

当在 Microsoft Windows 上安装 JBoss Core Services Apache HTTP Server 时,您可以使用命令提示符或使用计算机管理工具管理 Apache HTTP 服务器。在 Microsoft Windows 上运行 Apache HTTP Server 之前,您必须执行以下一系列配置任务:

4.2.1. 在 Microsoft Windows 上运行 Apache HTTP 服务器安装后脚本

在 Microsoft Windows 上第一次运行 Apache HTTP Server 之前,您必须运行 Apache HTTP 服务器安装后脚本。

流程

  1. 以管理用户身份打开 命令提示符
  2. 前往 HTTPD_HOME\etc 目录。
  3. 使用以下命令:

    call postinstall.httpd.bat

4.2.2. 安装 Apache HTTP 服务器服务

在 Microsoft Windows 上第一次运行 Apache HTTP Server 之前,您必须安装 Apache HTTP Server 作为 Windows 服务。

注意

默认情况下,Apache HTTP 服务器配置为使用端口 80。如果安装了 Microsoft Internet Information Services(IIS),您必须禁用或重新配置 Microsoft IIS 以避免端口冲突:

  • 停止 World Wide Web 服务,并将 启动类型更改为 Manual
  • 配置 IIS 以使用不同端口。

或者,您可以在安装 Apache HTTP 服务器服务前编辑 httpd.conf,并将 Listen 更改为与 Microsoft IIS 端口不冲突的端口。

流程

  1. 以管理用户身份打开 命令提示符
  2. 转到 HTTPD_HOME\bin 目录。
  3. 要安装 Apache HTTP 服务器服务,请输入以下命令:

    httpd -k install
    注意

    可能会显示防火墙安全对话框,以请求 Apache HTTP 服务器的网络访问。点 Allow 从网络访问这个服务。

4.2.3. 为 Apache HTTP 服务器服务配置文件夹权限

在 Microsoft Windows 上第一次运行 Apache HTTP 服务器之前,您必须确保用于运行该服务的帐户对 HTTPD_HOME 文件夹及其所有子文件夹具有完全控制。

流程

  1. 右键单击 HTTPD_HOME 文件夹,然后单击 Properties
  2. 选择 Security 选项卡。
  3. 编辑按钮
  4. 点击 Add 按钮。
  5. 在文本框中,输入 LOCAL SERVICE
  6. 选中 LOCAL SERVICE 帐户的 Full Control 复选框。
  7. 点击 确定
  8. Advanced 按钮。
  9. Advanced Security Settings 对话框中,选择 LOCAL SERVICE 并点 Edit
  10. 选择 将此对象选项中的可继承权限替换所有现有的可继承权限 旁边的复选框。
  11. 通过所有打开的文件夹属性窗口,单击 OK 以应用设置。

4.2.4. 禁用或启用 SSL 支持

运行 Apache HTTP 服务器前,您可以选择通过重命名 SSL 配置文件来禁用或启用 SSL 支持。Apache HTTP 服务器默认支持 SSL。

流程

  1. 前往 HTTPD_HOME\conf.d\ 目录。
  2. 要启用或禁用 SSL,请执行以下步骤之一:

    • 如果您要禁用 SSL,将 ssl.conf 重命名为 ssl.conf.disabled
    • 如果要重新启用 SSL,将 ssl.conf.disabled 重命名为 ssl.conf

4.3. 在 Microsoft Windows 上启动 Apache HTTP 服务器

当在 Microsoft Windows 上安装 JBoss Core Services Apache HTTP Server 时,您可以使用命令 Prompt 或 Computer Management 工具启动 Apache HTTP Server 服务。

流程

  • 执行以下步骤之一:

    • 以管理员身份打开 Command Prompt 并输入以下命令:

      net start Apache2.4
    • Start > Administrative Tools > Services,右键点击 httpd 服务,点 Start

4.4. 在 Microsoft Windows 上停止 Apache HTTP 服务器

当在 Microsoft Windows 上安装 JBoss Core Services Apache HTTP Server 时,您可以使用命令 Prompt 或 Computer Management 工具停止 Apache HTTP Server 服务。

先决条件

流程

  • 执行以下步骤之一:

    • 以管理员身份打开 Command Prompt 并输入以下命令:

      net stop Apache2.4
    • Start > Administrative Tools > Services,右键点击 httpd 服务,然后点 Stop

第 5 章 为 JBoss Core Services Apache HTTP 服务器启用 HTTP/2

Hypertext 传输协议(HTTP)是通过互联网在应用程序间传输数据的标准方法,如服务器和浏览器。Apache HTTP 服务器支持将 HTTP/2 用于使用传输层安全(TLS)的加密连接,该连接在启用时由 h2 关键字表示。

HTTP/2 通过提供以下改进,改进了 HTTP/1.1:

  • 标头压缩省略了表示的信息,以减少传输的标头的大小。
  • 单个连接中的多个请求和响应使用二进制标记,而不是文本框中断响应消息。
注意

Apache HTTP 服务器不支持将 HTTP/2 用于使用传输控制协议(TCP)的未加密连接,该连接在启用时由 h2c 关键字表示。

对于使用 Multi-Processing Module(MPM)pre-fork(modules/mod_mpm_prefork.so)的 Web 服务器不提供 HTTP/2。

5.1. 先决条件

  • 在 Red Hat Enterprise Linux 上具有 root 用户访问。
  • 在 Windows Server 上具有管理访问权限。
  • 已安装 Red Hat JBoss Core Services Apache HTTP Server 2.4.23 或更高版本。
  • 已安装 SSL 模块(模块/mod_ssl.so)。

    如果您需要安装 SSL 模块,请输入以下命令:

    yum install mod_ssl
  • 已安装 HTTP/2 模块(modules/mod_http2.so)。

    如果需要安装 HTTP/2 模块,请输入以下命令:

    yum install mod_http2
注意

Red Hat Enterprise Linux 6 不再被支持,并随后从文档中被删除。

5.2. 为 Apache HTTP 服务器启用 HTTP/2

您可以通过更新 HTTP_HOME 目录中的配置文件设置来为 Apache HTTP 服务器启用 HTTP/2。

流程

  1. http2_module 添加到配置中:

    1. 打开 HTTP_HOME/conf.modules.d/00-base.conf 文件。
    2. 输入以下行:

      ...
      LoadModule http2_module modules/mod_http2.so
  2. 在配置中添加 h2 协议:

    1. 打开 HTTP_HOME/conf/httpd.conf 文件。
    2. 如果要为虚拟主机启用 HTTP/2 支持,请在虚拟主机配置中添加 h2 协议。

      另外,如果要为所有服务器连接启用 HTTP/2 支持,请在主服务器配置部分添加 h2 协议。

      例如:

      <IfModule http2_module>
          Protocols h2 http/1.1
          ProtocolsHonorOrder on
      </IfModule>
  3. 更新安全套接字层(SSL)配置:

    1. 打开 HTTP_HOME/conf.d/ssl.conf 文件:
    2. 确保 SSLEngine 指令设置为 enabled。SSL Engine 被默认启用。

      SSLEngine on
    3. 更新 SSLProtocol 指令,以禁用 SSLv2SSLv3 协议。这会强制连接使用传输层安全(TLS)协议。

      SSLProtocol all -SSLv2 -SSLv3
    4. 更新 SSLCipherSuite 指令,以指定可将哪些 SSL 密码用于 Apache HTTP 服务器。

      例如:

      SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK
      注意

      有关 SSL 模块和支持的指令的更多信息,请参阅 Apache HTTP 服务器文档 2.4 - 模块:Apache 模块 mod_ssl

  4. 要重启 Red Hat JBoss Core Services Apache HTTP 服务器并应用更改的配置,请以 root 用户身份执行以下步骤之一:

    • 如果要使用 systemd 在 Red Hat Enterprise Linux 上启动 Apache HTTP 服务器,请输入以下命令:

      # systemctl restart jbcs-httpd24-httpd.service
    • 如果要使用 apachectl 在 Red Hat Enterprise Linux 上启动 Red Hat JBoss Core Services,请输入以下命令:

      # HTTP_HOME/sbin/apachectl restart
    • 如果要在 Windows Server 上启动 Apache HTTP Server,请输入以下命令:

      # net restart Apache2.4

其他资源

5.3. 查看 Apache HTTP 服务器日志以验证是否已启用 HTTP/2

您可以查看 Apache HTTP Server 访问日志或请求日志,以验证是否启用了 HTTP/2。

先决条件

流程

  1. 从浏览器或使用 curl 命令行工具访问服务器。
  2. 要检查 SSL/TLS 请求日志,请输入以下命令:

    $ grep 'HTTP/2'  HTTP_HOME/logs/ssl_request_log
  3. 要检查 SSL/TLS 访问日志,请输入以下命令:

    $ grep 'HTTP/2'  HTTP_HOME/logs/ssl_access_log

验证

  1. 如果启用了 HTTP/2,则 grep 'HTTP/2' HTTP_HOME/logs/ssl_request_log 命令生成以下输出类型:

    [26/Apr/2018:06:44:45 +0000] 172.17.0.1 TLSv1.2 AES128-SHA "HEAD /html-single/index.html HTTP/2" -
  2. 如果启用了 HTTP/2,则 grep 'HTTP/2' HTTP_HOME/logs/ssl_access_log 命令生成以下输出类型:

    172.17.0.1 - - [26/Apr/2018:06:44:45 +0000] "HEAD /html-single/index.html HTTP/2" 200 -

5.4. 使用 curl 命令验证是否已启用 HTTP/2

您可以使用 curl 命令行工具验证是否已启用 HTTP/2。

注意

由 Red Hat Enterprise Linux 7 或更早版本提供的 curl 软件包不支持 HTTP/2。

先决条件

  • 您已 启用了 HTTP/2
  • 您可以使用支持 HTTP2curl 版本。

    要检查您是否使用支持 HTTP/2 的 curl 版本,请输入以下命令:

    $ curl -V

    该命令生成以下输出类型:

    curl 7.55.1 (x86_64-redhat-linux-gnu) ...
    Release-Date: 2017-08-14
    Protocols: dict file ftp ftps gopher http https ...
    Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy Metalink PSL

流程

  1. 要检查 HTTP/2 协议是否活跃,请输入以下命令:

    $ curl -I http://<JBCS_httpd_server>:<port>/<test.html>
    注意

    在前面的示例中,将 & lt;JBCS_httpd_server > 替换为服务器的 URI,如 example.com,将 &lt ;test.html > 替换为您要用来测试配置的任何 HTML 文件。不提供 HTML 测试页面示例。端口号取决于您的配置。

验证

  • 如果 HTTP/2 协议是活跃的,curl 命令会生成以下输出:

    HTTP/2 200

    否则,如果 HTTP/2 协议不活跃,curl 命令会生成以下输出:

    HTTP/1.1 200

5.5. 其他资源(或后续步骤)





修订于 2023-01-07 19:23:46 +1000