1.2. 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 backend -
mod_md
- ACME 协议 SSL/TLS 证书服务
-
现在默认载入以下模块:
-
mod_request
-
mod_macro
-
mod_watchdog
-
-
添加了一个新的子
软件包 httpd-filesystem
,其中包含 Apache HTTP 服务器 的基本目录布局,包括目录的正确权限。 -
引入了实例化服务支持
httpd@.service
。如需更多信息,请参阅httpd.service
man page。
-
新的
httpd-init.service
替换%post 脚本
来创建自签名的mod_ssl
密钥对。
-
mod_md
软件包现在支持使用自动证书管理环境(ACME)协议进行自动 TLS 证书置备和续订(用于Let 的加密
等证书提供商)。 -
Apache HTTP 服务器 现在支持直接从
PKCS#11
模块的硬件安全令牌加载 TLS 证书和私钥。现在,mod_ssl
配置可以使用PKCS#11
URL 来标识 TLS 私钥,(可选)以及SSLCertificateKeyFile
和SSLCertificateFile
指令中的 TLS 证书。 现在,支持
/etc/httpd/conf/httpd.conf
文件中的ListenFree
指令。与
Listen
指令类似,listenFree
也提供有关服务器侦听的 IP 地址、端口或 IP 地址和端口组合的信息。但是,使用ListenFree
时,默认启用IP_FREEBIND
套接字选项。因此,允许httpd
绑定到非本地 IP 地址或尚不存在的 IP 地址。这允许httpd
侦听套接字,无需在httpd
尝试绑定到底层网络接口或指定的动态 IP 地址处于在线状态。请注意,
ListenFree
指令目前仅在 RHEL 8 中可用。有关
ListenFree
的详情,请查看下表:表 1.1. ListenFree 指令的语法、状态和模块 语法 状态 模块 ListenFree [IP-address:]portnumber [protocol]
MPM
event、worker、prefork、mpm_winnt、mpm_netware、mpmt_os2
其他显著变化包括:
删除了以下模块:
-
mod_file_cache
mod_nss
使用
mod_ssl
作为替换。有关从mod_nss
迁移的详情,请参考 第 1.14 节 “从 NSS 数据库导出私钥和证书,以便在 Apache Web 服务器配置中使用它们”。-
mod_perl
-
-
在 RHEL 8 中,Apache HTTP 服务器 使用的默认 DBM 验证数据库已经从
SDBM
改为db5
。 -
Apache HTTP 服务器的
mod_wsgi
模块已更新为 Python 3。WSGI 应用程序现在只支持 Python 3,且必须从 Python 2 中迁移。 默认情况下,使用 Apache HTTP 服务器配置 的多处理模块(MPM)从多进程(称为
prefork
)的派生模型更改为高性能多线程模型事件
。任何不是线程的第三方模块都需要被替换或删除。要更改配置的 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)手册页
。 -
现在,停止
httpd
服务默认使用"正常停止"。 -
mod_auth_kerb
模块已被mod_auth_gssapi
模块替代。