如何在ApacheWeb服务器中安装、配置和使用模块

来自菜鸟教程
跳转至:导航、​搜索


状态: 已弃用

本文介绍了不再受支持的 Ubuntu 版本。 如果您当前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:

原因: Ubuntu 12.04 已于 2017 年 4 月 28 日终止生命周期 (EOL) and no longer receives security patches or updates. This guide is no longer maintained.

请参阅:
本指南可能仍可用作参考,但可能不适用于其他 Ubuntu 版本。 如果可用,我们强烈建议使用为您正在使用的 Ubuntu 版本编写的指南。 您可以使用页面顶部的搜索功能来查找更新的版本。


什么是阿帕奇?

Apache 是世界上最流行的 Web 服务器。 它负责为互联网上超过一半的活跃站点提供服务,并且可以处理大型和小型项目的需求。

在本指南中,我们将介绍一些常见的有用模块,这些模块可以添加功能并改善您在使用 Apache 时的体验。 它们可以帮助您优化、保护和监控您的服务器。

我们将使用 Ubuntu 12.04 VPS 来探索这些模块,但大多数发行版应该以类似的方式运行。 有关特定于 Apache 的文件位置,请查阅您的发行版文档。

PageSpeed 模块

mod_pagespeed 模块是一个 Apache 增强功能,可以自动优化您的内容。 它可以压缩数据、实现缓存、调整文件大小以及从配置文件中删除不必要的空白。

该项目的网页上有适用于 Ubuntu 的二进制文件。 要在 64 位 Ubuntu 系统上下载并安装,请键入以下内容:

cd
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb
sudo dpkg -i mod-pagespeed-*.deb
sudo apt-get -f install
sudo service apache2 reload

在 32 位 Ubuntu 系统上,键入:

cd
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.deb
sudo dpkg -i mod-pagespeed-*.deb
sudo apt-get -f install
sudo service apache2 reload

配置文件位于“/etc/apache2/mods-available/pagespeed.conf”。

此模块在安装时启用,并且在您重新加载服务器时应该开始优化内容,但您可以从配置文件中配置许多不同的优化和监控功能。 按照我们关于 如何在 Ubuntu 或 Debian 上配置 mod_pagespeed 的指南。

安全模块

mod_security 模块提供了一个可配置的安全层,可以根据管理员设置的规则接受或拒绝流量。 它是一种应用程序防火墙,可以防止将漏洞暴露给互联网。

该模块位于 Ubuntu 的默认存储库中,因此可以使用以下命令安装它:

sudo apt-get install libapache2-modsecurity

您可以使用以下命令启用模块:

sudo a2enmod mod-security

普通“/etc/apache2/mods-available”目录中的配置文件称为“mod-security.conf”,但这仅引用“/etct/modsecurity”中的文件。

我们可以使用以下命令将默认示例文件移动到生产环境中:

cd /etc/modsecurity
sudo cp modsecurity.conf-recommended modsecurity.conf
Open the configuration file with root privileges:
sudo nano modsecurity.conf

阅读配置文件并根据站点的需要调整值。 大多数默认配置设置都可以。 您可能希望将“SecRequestBodyLimit”调整为比默认的 128 KB 限制更宽松的值。

当您准备好应用设置时,您可以将“SecRuleEngine”规则更改为“On”而不是“DetectionOnly”:

#SecRuleEngine DetectionOnly
SecRuleEngine On

这将实施您的规则并开始将它们应用于您的站点。 您需要重新加载 Apache 实例才能使这些规则生效:

sudo service apache2 reload

状态模块

当您在 Ubuntu 上安装 Apache 时,会预先安装和配置最有用和最容易配置的模块之一。 mod_status 模块提供服务器负载和请求的概述。

您可以使用以下命令编辑“mods-available”目录中的配置文件:

sudo nano /etc/apache2/mods-available/status.conf

在“Location /server-status”指令下,删除“192.0.2.0/24”行之前的“#”字符,并添加您将用于访问 Web 服务器的计算机的 IP 地址:

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1 ::1
    Allow from Your.IP.Address.Here
</Location>

再次确保您输入的 IP 地址是您用来访问服务器的计算机,而不是服务器的 IP 地址。

重新加载 Apache 以便它可以重新读取新的配置更改:

sudo service apache2 reload

通过在 Web 浏览器中键入以下内容,导航到您定义的服务器状态页面:

Server.IP.Address.Or.Domain.Name/server-status
Apache Server Status for 192.241.167.189

Server Version: Apache/2.2.22 (Ubuntu)
Server Built: Jul 12 2013 13:37:15
Current Time: Thursday, 08-Aug-2013 16:36:48 UTC
Restart Time: Thursday, 08-Aug-2013 16:04:59 UTC
Parent Server Generation: 2
Server uptime: 31 minutes 49 seconds
Total accesses: 3 - Total Traffic: 0 kB
CPU Usage: u0 s0 cu0 cs0
. . .

您将看到一个统计页面,该页面将为您提供有关服务器性能和负载的信息和基于文本的指示。 快速刷新页面将允许您查看活动的显示方式。

Spamhaus 模块

Spamhaus 模块使您能够通过拒绝来自已知不良 IP 地址黑名单的请求来阻止攻击者。

再一次,这个模块在 Ubuntu 的默认存储库中。 使用以下命令安装:

sudo apt-get install libapache2-mod-spamhaus

要进行配置,请查看“mods-available”目录中的“mod-spamhaus.conf”文件:

sudo nano /etc/apache2/mods-available/mod_spamhaus.conf

您可以将模块配置为根据许多不同的标准进行过滤。 使用“MS_METHODS”定义,您可以在客户端使用任何可识别的 HTTP 方法时检查 IP。 这可以防止这些 IP 淹没服务器。

该模块还允许您配置白名单、维护本地版本的 DNS 黑名单以及调整缓存参数。

该模块应该在安装时启用,但我们可以仔细检查并重新加载 apache 以使用以下命令启用过滤:

sudo a2enmod mod-spamhaus
sudo service apache2 reload

重写模块

Apache 最有用的模块之一是 mod_rewrite。 此模块允许您为服务器上请求的内容生成唯一且易于阅读的 url。

该模块在安装 Apache 时默认安装在 Ubuntu 上,但未启用。 要纠正这种情况,请发出以下命令:

sudo a2enmod rewrite
sudo service apache2 reload

mod_rewrite 的配置不在“mods-available”目录中进行。 相反,它使用 .htaccess 文件或普通服务器配置文件中的声明来决定要做什么。

完整的配置细节超出了本文的范围。 但是,我们这里有一篇关于 如何设置 mod_rewrite 的详细文章。

结论

这绝不是 Apache 模块的详尽列表,而只是一个介绍。 到目前为止,您应该能够看到一些可用于修改标准 Apache 行为的模块。

请记住,您添加到服务器的每一段代码都可能会打开漏洞并产生更多开销。 尝试选择经过良好测试且通常实现的模块。 仅启用您的站点积极需要的模块。

贾斯汀·艾林伍德