静态网站所需的最少 Apache 模块,无需 authN

chb*_*chb 12 apache-http-server

我刚刚在 RHEL 6.1(提供 Apache 2.2.15)中安装了 httpd 包。默认的 httpd.conf 包含不少于 50 个 LoadModule 指令的实例。

但是,我想要做的就是提供静态内容、一两个 Google 地图和一些 CSS。

反复试验以及apachectl configtest,让我相信我可以只启用以下模块(假设没有对默认配置文件进行其他更改):

mod_authz_host
mod_log_config
mod_mime_magic
mod_setenvif
mod_mime
mod_autoindex
mod_negotiation
mod_dir
mod_alias
Run Code Online (Sandbox Code Playgroud)

为了更好/更安全地运行服务器,是否应该包含在此列表中的模块?在官方的文档似乎表明,没有什么比mod_dirmod_mime绝对必需的准系统网站。

注意:我不会就指定任务使用哪个 HTTP 服务器征求建议。我知道“更轻”服务器的存在。这个问题是关于 Apache 模块的。

chb*_*chb 9

答案在官方 2.2 文档的性能调优部分中有所提及。

当然,这里出现的一个相关问题是您需要哪些模块,哪些不需要。当然,这里的答案会因一个网站而异。但是,您可以使用的模块的最小列表 > 往往包括 mod_mime、mod_dir 和 mod_log_config。mod_log_config 当然是可选的,因为您可以在没有日志文件的情况下运行网站。但是,不建议这样做。


Dav*_*ogo 6

刚刚在我使用 Apache 2.2 设置新 PC 时注意到这个问题。这是我设法想出的绝对最小 httpd.conf:

    ServerName 127.0.0.1
    Listen 8080
    LoadModule dir_module modules/mod_dir.so
    LoadModule mime_module modules/mod_mime.so
    DirectoryIndex index.html 
    DocumentRoot "C:/http_root"
    ErrorLog "logs/error.log"
    LogLevel warn                
Run Code Online (Sandbox Code Playgroud)

ErrorLog当然不需要,但我正在试验,所以如果我的 httpd.conf 文件引起问题,显然需要一些反馈。您需要ServerName避免在启动期间出现无法可靠确定服务器地址的警告。我当然可以确认您确实需要dir_modulemime_module以便您可以从目录 URL 提供默认文件,并将文件显示为 HTML 而不是纯文本。

我发布这个是因为我发现默认的 httpd.conf 文件极其复杂,我记得当我学习 Tomcat 时,当我发现绝对最小的服务器配置文件时,一切都变得更加清晰。

如果您想为 php 页面提供服务器,您只需要以下两行(根据您的环境进行调整:

PHPIniDir "C:/php/"
LoadModule php5_module "C:/php/php5apache2_2.dll"
Run Code Online (Sandbox Code Playgroud)