只需最少的Apache模块即可获得静态网站且无需authN


12

我刚刚在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

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

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

Answers:


9

答案在2.2官方文档中的“ 性能调整 ”部分中提到。

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


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                

ErrorLog当然不需要,但是我正在实验,因此如果我的httpd.conf文件引起问题,显然需要一些反馈。您需要ServerName避免在启动过程中出现关于无法可靠确定服务器地址的警告。我当然可以确认您确实需要dir_modulemime_module这样您就可以从目录URL传递默认文件,并且还可以将文件显示为HTML而不是纯文本。

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

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

PHPIniDir "C:/php/"
LoadModule php5_module "C:/php/php5apache2_2.dll"

在我看来,对于Linux,Red hat来说,这很有用。我正在上面尝试,但是它需要进行大量修改,但仍不会重定向到我感兴趣的html文件
。– alimack

1

这花了一个上午通过反复试验来解决,但是在Red hat 6(ish)上还是可行的,请注意,我不得不覆盖一个我无法更改的现有.htaccess文件。这将指向您根目录中的offline.html

ServerName 127.0.0.1
Listen 80
TypesConfig /etc/mime.types
LoadModule dir_module modules/mod_dir.so
LoadModule mime_module modules/mod_mime.so
LoadModule rewrite_module modules/mod_rewrite.so

User apache
Group apache
DocumentRoot "/homedir/"
DirectoryIndex offline.html
ErrorLog "/homedir/error.log"
LogLevel warn  

<Directory />
AllowOverride None
</Directory>

如果您不需要覆盖htaccess文件,则可以避免这种情况(假设您要记录错误):

ServerName 127.0.0.1
Listen 80
TypesConfig /etc/mime.types
LoadModule dir_module modules/mod_dir.so
LoadModule mime_module modules/mod_mime.so

User apache
Group apache
DocumentRoot "/homedir/"
DirectoryIndex offline.html
ErrorLog "/homedir/error.log"
LogLevel warn  
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.