15.2. Web 服务器

15.2.1. Apache HTTP 服务器中的显著变化

Apache HTTP 服务器 已从 RHEL 7 提供的版本 2.4.6 更新至 RHEL 8 提供的版本 2.4.37。这个更新的版本包含 一 些新功能,但在外部模块的配置和应用程序 二 进制界面(ABI)中保持了与 RHEL 7 版本的后向兼容性。

新特性包括:

  • HTTP/2 支持由 mod_http2 软件包提供,这是 httpd 模块的一部分。
  • 支持 systemd 套接字激活。详情请查看 httpd.socket(8) 手册页。
  • 添加了多个新模块:

    • mod_proxy_hcheck - 代理健康检查模块
    • mod_proxy_uwsgi - Web 服务器网关接口(WSGI)
    • mod_proxy_fdpass - 提供对将客户端套接字传递给另一个进程的支持
    • mod_cache_socache - 使用的 HTTP 缓存,例如: memcache 后端
    • mod_md - ACME 协议 SSL/TLS 证书服务
  • 现在默认载入以下模块:

    • mod_request
    • mod_macro
    • mod_watchdog
  • 添加了一个新的子软件包 httpd-filesystem,其中包含 Apache HTTP 服务器的基本目录布局,其中包括这些目录的正确权限。
  • 实例化服务支持, httpd@.service 已经引进。详情请查看 httpd.service 说明书页。
  • 新的 httpd-init.service 替换 %post 脚本 来创建自签名的 mod_ssl 密钥对。
  • 现在, mod_md 软件包支持使用自动证书管理环境(ACME)协议进行自动 TLS 证书置备和续订(与证书供应商,比如 Let’s Encrypt)一起使用。
  • Apache HTTP 服务器 现在支持从 PKCS#11 模块中直接从硬件安全令牌加载 TLS 证书和私钥。现在, mod_ssl 配置可以使用 PKCS#11 URL 来识别 TLS 私钥,以及 SSLCertificateKeyFileSSLCertificateFile 指令中的 TLS 证书。
  • 现在支持 /etc/httpd/conf/httpd.conf 文件中新的 ListenFree 指令。

    Listen 指令类似, ListenFree 提供了服务器侦听的 IP 地址、端口或者 IP 地址和端口组合的信息。然而,使用 ListenFree, IP_FREEBIND 套接字选项会被默认启用。因此, httpd 可以被绑定到一个非本地 IP 地址或一个不存在的 IP 地址中。这样就允许 httpd 在一个套接字上侦听一个套接字,而无需在 httpd 尝试绑定底层网络接口或指定的动态 IP 地址时,相应的网络接口或 IP 地址必须已可用。

    请注意, ListenFree 指令目前只在 RHEL 8 中可用。

    有关 ListenFree 的详情,请查看下表:

    表 15.1. ListenFree 指令的语法、状态和模块

    语法状态模块

    ListenFree [IP-address:]portnumber [protocol]

    MPM

    event, worker, prefork, mpm_winnt, mpm_netware, mpmt_os2

其他显著变化包括:

  • 删除了以下模块:

  • 在 RHEL 8 中,Apache HTTP 服务器 使用的默认 DBM 验证数据库已经从 SDBM 改为 db5
  • Apache HTTP 服务器mod_wsgi 模块已更新为 Python 3。WSGI 应用程序现在只支持 Python 3,且必须从 Python 2 中迁移。
  • 默认使用 Apache HTTP 服务器 配置的多进程模块(MPM)已从多进程(称为 prefork)改为高性能多线程模式, event

    任何非线程安全的第 三 方模块都需要被替换或删除。要更改配置的 MPM,请编辑 /etc/httpd/conf.modules.d/00-mpm.conf 文件。详情请查看 httpd.service(8) 手册页。

  • suEXEC 允许用户最小的 UID 和 GID,现在分别是 1000 和 500(以前的 100 和 100)。
  • /etc/sysconfig/httpd 文件不再被支持用来为 httpd 服务设置环境变量。为 systemd 服务添加了 httpd.service(8) 手册页。
  • 现在默认使用 "graceful stop" 停止 httpd 服务。
  • mod_auth_kerb 模块已被 mod_auth_gssapi 模块替代。

有关部署的步骤,请查看 设置 Apache HTTP web 服务器

15.2.2. RHEL 提供了新的 nginx web 服务器

RHEL 8 引进了 nginx 1.14,它是一个支持 HTTP 和其他协议的网页和代理服务器,它着重处理高并发、性能以及低内存用量。nginx 之前只作为软件集合使用。

nginx web 服务器现在支持直接从 PKCS#11 模块的硬件安全令牌加载 TLS 私钥。因此, 一个 nginx 配置可以使用 PKCS#11 URL 来识别 ssl_certificate_key 指令中的 TLS 私钥

15.2.3. 已删除 Apache Tomcat

Apache Tomcat 服务器已从 Red Hat Enterprise Linux 中删除。Apache Tomcat 是 Java Servlet 和 JavaServer Pages(JSP)技术的 servlet 容器。红帽建议需要 servlet 容器的用户使用 JBoss Web Server


为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。