配置 Apache Web 服务器
ServBay 允许您方便地管理和配置内置的 Apache Web 服务器软件包。通过 ServBay 的图形用户界面,您可以轻松调整 Apache 的核心设置,以满足不同开发项目的需求。
访问 Apache 配置
- 打开 ServBay 应用程序。
- 在左侧导航栏中,点击
Web 服务器
。 - 选择
Apache
选项卡。
您将看到 Apache 的配置界面,如下图所示:
主要配置项说明
以下是 Apache 配置界面中各项参数的详细说明:
基本设置
- HTTP Port: Apache 监听的 HTTP 协议端口,默认为
80
。 - HTTPS Port: Apache 监听的 HTTPS 协议端口,默认为
443
。 - Server Name: 服务器用于标识自身的名称和端口。默认
127.0.0.1
通常用于本地访问。 - Server Root: Apache 软件包的安装根目录。注意: 这不是您网站文件的存放目录(网站根目录在添加网站时单独设置),而是 Apache 程序文件所在的路径。默认通常为
/Applications/ServBay/package/apache/current
。
性能调优 (Performance Tuning)
- Timeout: 服务器在放弃 I/O 操作前等待的最大秒数。默认
300
秒。 - Max KeepAlive Requests: 在一个持久连接上允许的最大请求数。
1000
表示允许较多的请求复用同一连接,0
表示不限制。 - KeepAlive Timeout: 服务器在关闭一个持久连接前等待下一个请求的最大秒数。默认
60
秒。 - Keep Alive: 是否启用 HTTP 持久连接 (KeepAlive)。推荐
On
以提高性能。 - MPM StartServers: 服务器启动时创建的子服务进程数量。
- MPM MaxSpareThreads: 最大空闲线程数。控制备用线程数量以应对突发请求。
- MPM MaxConnectionsPerChild (以前叫 MaxRequestsPerChild): 每个子服务进程在其生命周期内允许处理的最大连接数。
0
表示不限制。有助于防止内存泄漏影响过久。 - MPM MaxRequestWorkers (以前叫 MaxClients): 允许同时处理的最大并发请求数(所有子进程的总和)。这是 Apache 性能的关键配置。
- MPM ThreadsPerChild: 每个子服务进程创建的固定线程数 (适用于
worker
或event
MPM)。
功能与特性 (Features & Characteristics)
- Access File Name: 用于指定分布式配置文件名的指令,通常是
.htaccess
。允许或禁止使用.htaccess
文件覆盖服务器主配置。 - Use Canonical Name: 控制 Apache 如何构建自引用 URL。
Off
通常更灵活。 - Server Signature: 在服务器生成的页面(如错误页)底部添加一行包含服务器版本和虚拟主机名的信息。出于安全考虑,生产环境建议
Off
。 - Hostname Lookups: 是否对请求客户端的 IP 地址进行 DNS 反向查询以获取主机名。
Off
可以提高性能,因为 DNS 查询可能较慢。 - Server Tokens: 控制服务器响应头 (
Server:
) 中包含的信息量。Minor
(例如 Apache/2.4) 比Full
(例如 Apache/2.4.58 (Unix) PHP/8.3.1) 更安全。Prod
则只显示Apache
。
管理与日志 (Admin & Logging)
- Server Admin: 在服务器返回给客户端的错误消息中显示的管理员电子邮件地址。
- Log Level: 控制记录到错误日志 (
error_log
) 的消息详细程度。warn
是常用的级别,记录警告及更严重错误。其他级别包括debug
,info
,notice
,error
,crit
,alert
,emerg
。
模块 (Modules)
此区域列出了可用的 Apache 模块。您可以勾选复选框来启用所需的模块,或取消勾选来禁用它们。常见的模块包括:
mod_rewrite
: 用于 URL 重写。mod_ssl
: 提供 SSL/TLS 支持 (HTTPS)。mod_deflate
: 用于压缩传输内容。mod_expires
: 控制缓存头。mod_proxy
和相关模块: 用于反向代理。mod_auth_basic
,mod_auth_digest
: 用于基本或摘要认证。
启用或禁用模块后,需要保存配置并可能需要重启 Apache 服务才能生效。
目录索引 (Directory Index)
- Directory Index: 当请求的 URL 指向一个目录时,Apache 会尝试在该目录中查找的文件列表。它会按顺序查找,找到第一个存在的文件并返回其内容。默认通常是
index.html index.htm index.php
。
SSL/TLS 设置
这些设置用于配置 Apache 的 HTTPS 功能。
- SSLCipherSuite / TLSCipherSuite: 定义服务器允许使用的加密套件。使用强大且现代的加密套件对于安全性至关重要。ServBay 提供了推荐的默认值。
- SSLProxyCipherSuite: 为 Apache 作为反向代理时使用的 SSL 连接定义加密套件。
- SSLHonorCipherOrder:
On
表示强制服务器优先选择其偏好的加密套件,而不是客户端的。推荐On
。 - SSLStrictSNIVHostCheck:
On
表示如果客户端通过 SNI (Server Name Indication) 请求的主机名与配置的虚拟主机不匹配,则拒绝连接。增强安全性。 - ProtocolHonorOrder: 与
SSLHonorCipherOrder
类似,但应用于协议版本协商。 - SSLProtocol: 定义允许使用的 SSL/TLS 协议版本。示例
all -SSLv2 -SSLv3
表示允许所有现代协议,但禁用已知不安全的 SSLv2 和 SSLv3。 - SSLProxyProtocol: 为 Apache 作为反向代理时使用的 SSL 连接定义允许的协议版本。
- Protocols: 配置支持的协议协商顺序,例如启用 HTTP/2。
h2 h2c http/1.1
表示优先使用 HTTP/2 (加密h2
或明文h2c
),然后回退到 HTTP/1.1。
保存与重置
- Reset: 点击此按钮会将所有 Apache 配置恢复到 ServBay 的默认设置。
- Save: 点击此按钮会保存您对 Apache 配置所做的所有更改。保存后,ServBay 通常会自动应用这些更改。如果 Apache 服务正在运行,可能需要短暂重启才能使所有更改生效。
重要提示
- 此处修改的是 Apache 的全局配置。针对特定网站(虚拟主机)的配置(如
DocumentRoot
、特定的RewriteRule
等)通常在添加或编辑网站
(Websites) 时进行设置。 - 如果在配置界面顶部看到 "Service Apache is not enabled" 的提示,这意味着 Apache 服务当前未运行。您仍然可以修改和保存配置,但这些更改只会在您下次启动 Apache 服务时生效。您可以从 ServBay 的主面板或
软件包
(Packages) 菜单启动 Apache。
总结
ServBay 提供了一个直观的界面来管理 Apache Web 服务器的核心配置。通过理解这些选项,您可以根据开发需求调整 Apache 的行为、性能和安全性,从而更好地利用 ServBay 作为您的本地开发环境。