Apache 项目是一个协作软件开发项目,旨在创建一个健壮、商业级、功能丰富且免费可用的 HTTP (Web) 服务器的源代码实现。该项目由一个位于世界各地的志愿者小组共同管理,他们使用互联网和 Web 进行沟通、计划和开发服务器及其相关文档。这些志愿者被称为 Apache 组织。此外,数百名用户为该项目贡献了想法、代码和文档。本文档旨在简要描述 Apache 组织的历史并表彰众多贡献者。 | ||
--www.apache.org |
它简直是最好的 Web 服务器软件,它非常灵活,可以根据您的需求进行配置,并且极其稳定。我个人从未在生产(=非实验性)环境中遇到过崩溃。
如果您的 Web 服务器需要同时响应大量请求,并且您的机器足够强大以处理如此大量的请求,您可以更改最大运行进程数的限制。
从以下地址下载补丁: http://www.delouw.ch/linux/apache-patch_HARD_SERVER_LIMIT.txt
--- httpd.h Thu Mar 21 18:07:34 2002 +++ httpd.h-new Sun Apr 7 13:34:11 2002 @@ -320,7 +320,7 @@ #elif defined(NETWARE) #define HARD_SERVER_LIMIT 2048 #else -#define HARD_SERVER_LIMIT 256 +#define HARD_SERVER_LIMIT 512 #endif #endif |
此补丁将最大并发访问客户端数增加到 512。如果您修改了内核并编辑了您的/etc/security/limits.conf
![]() | 避免任务耗尽 |
---|---|
如果设置错误,这可能会导致“自拒绝服务攻击”。请确保您为 root 用户保留了足够的进程。) |
使用以下命令应用补丁
cd /usr/local/apache_1.3.27/src/include patch -p0 < apache-patch_HARD_SERVER_LIMIT.txt |
该模块通过安全套接字层 (SSL v2/v3) 和传输层安全 (TLS v1) 协议,借助开源 SSL/TLS 工具包 OpenSSL(基于 Eric A. Young 和 Tim J. Hudson 的 SSLeay),为 Apache 1.3 Web 服务器提供强大的加密功能。 | ||
--www.modssl.org |
此模块用于启用 Apache 的 SSL 请求 (https)。它将补丁应用于 Apache 源代码并扩展了其 API(应用程序编程接口)。结果称为 EAPI(扩展应用程序编程接口)。
![]() | 编译模块时使用编译器标志 |
---|---|
确保为您的 Apache 服务器编译的任何模块都带有编译器标志-DEAPI,否则您的 Web 服务器可能会崩溃或无法启动。 |
我所知道的几乎所有模块都添加了-DEAPI标志,除了 mod_jserv 和 mod_jk
使用 mod_perl 可以完全用 Perl 编写 Apache 模块。此外,嵌入在服务器中的持久解释器避免了启动外部解释器的开销和 Perl 启动时间的损失。 | ||
--perl.apache.org |
mod_perl 是一种 cgi-bin 的替代品。cgi 通常为每个请求派生一个新进程,并产生开销。使用 mod_perl,perl 解释器持久地加载到 Apache 服务器中,不需要为每个请求派生进程。
现在,两个静态模块 mod_ssl 和 mod_perl 已配置,并且 Apache 源代码已打上补丁,我们可以继续构建 Apache。
EAPI_MM="/usr/local/mm-1.2.2" SSL_BASE="/usr/local/ssl" \ ./configure \ --enable-module=unique_id \ --enable-module=rewrite \ --enable-module=speling \ --enable-module=expires \ --enable-module=info \ --enable-module=log_agent \ --enable-module=log_referer \ --enable-module=usertrack \ --enable-module=proxy \ --enable-module=userdir \ --enable-module=so \ --enable-shared=ssl \ --enable-module=ssl \ --activate-module=src/modules/perl/libperl.a \ --enable-module=perl make make install |
cd /usr/local/ssl/bin ./openssl req -new > new.cert.csr ./openssl rsa -in privkey.pem -out new.cert.key ./openssl x509 -in new.cert.csr -out new.cert.cert \ -req -signkey new.cert.key -days 999 cp new.cert.key /usr/local/apache/conf/ssl.key/server.key cp new.cert.cert /usr/local/apache/conf/ssl.crt/server.crt |
![]() | 常用名称 |
---|---|
OpenSSL 会询问不同的信息。一个常见的错误是输入错误的“常用名称”。这应该是您服务器的 FQHN(完全限定主机名),例如 www.foo.org。 |