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

简介: 如何在 Apache Web 服务器中安装、配置和使用模块
## 状态:已弃用
本文涵盖的是不再受支持的 Ubuntu 版本。如果您目前正在运行 Ubuntu 12.04 服务器,我们强烈建议升级或迁移到受支持的 Ubuntu 版本:
- [升级到 Ubuntu 14.04](https://www.digitalocean.com/community/tutorials/how-to-upgrade-ubuntu-12-04-lts-to-ubuntu-14-04-lts)
- [从 Ubuntu 14.04 升级到 Ubuntu 16.04](https://www.digitalocean.com/community/tutorials/how-to-upgrade-to-ubuntu-16-04-lts)
- [将服务器数据迁移到受支持的版本](https://www.digitalocean.com/community/tutorials/how-to-migrate-linux-servers-part-1-system-preparation)
**原因:** [Ubuntu 12.04 已于 2017 年 4 月 28 日到达生命周期终点(EOL)](https://lists.ubuntu.com/archives/ubuntu-announce/2017-March/000218.html),不再接收安全补丁或更新。本指南不再维护。
**请参阅:** 本指南可能仍然作为参考有用,但可能不适用于其他 Ubuntu 版本。如果可能,请强烈建议使用适用于您所使用的 Ubuntu 版本的指南。您可以使用页面顶部的搜索功能查找更新版本。
### 什么是 Apache?
Apache 是世界上最流行的 Web 服务器。它负责为互联网上超过一半的活跃站点提供服务,并且可以满足大型和小型项目的需求。
在本指南中,我们将介绍一些常见且有用的模块,这些模块可以为 Apache 添加功能并改善您在使用 Apache 时的体验。它们可以帮助您优化、保护和监控服务器。
我们将使用 Ubuntu 12.04 VPS 来探索这些模块,但大多数发行版应该以类似的方式运行。请查阅您发行版的 Apache 特定文件位置的文档。
## PageSpeed 模块
mod_pagespeed 模块是一个可以自动优化您的内容的 Apache 增强功能。它可以压缩数据、实施缓存、调整文件大小,并从配置文件中删除不必要的空白。
项目网页上有适用于 Ubuntu 的二进制文件。要在 64 位 Ubuntu 系统上下载并安装,输入以下命令:
```bash
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

以 root 权限打开配置文件:

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 <span class="highlight">Your.IP.Address.Here</span>
</Location>

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

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

sudo service apache2 reload

通过在 Web 浏览器中输入以下内容导航到您定义的 server-status 页面:

<span class="highlight">Server.IP.Address.Or.Domain.Name</span>/server-status

您将获得一个统计页面,其中包含有关服务器性能和负载的信息和基于文本的指示。快速刷新页面将使您能够查看活动情况。

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。

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

sudo a2enmod rewrite
sudo service apache2 reload

mod_rewrite 的配置不是在 “mods-available” 目录中进行的。相反,它使用 .htaccess 文件或在常规服务器配置文件中的声明来决定要执行的操作。

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

结论

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

请记住,对于您向服务器添加的每一行代码,都存在着可能打开漏洞并创建更多开销的可能性。尽量选择经过充分测试和常见实施的模块。只启用您站点实际需要的模块。

作者:Justin Ellingwood


目录
相关文章
|
1月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
42 4
|
12天前
|
JavaScript 前端开发 开发工具
web项目规范配置(husky、eslint、lint-staged、commit)
通过上述配置,可以确保在Web项目开发过程中自动进行代码质量检查和规范化提交。Husky、ESLint、lint-staged和Commitlint共同作用,使得每次提交代码之前都会自动检查代码风格和语法问题,防止不符合规范的代码进入代码库。这不仅提高了代码质量,还保证了团队协作中的一致性。希望这些配置指南能帮助你建立高效的开发流程。
29 5
|
1月前
|
存储 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
39 1
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
|
1月前
|
缓存 前端开发 应用服务中间件
CORS跨域+Nginx配置、Apache配置
CORS跨域+Nginx配置、Apache配置
125 7
|
1月前
|
消息中间件 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
40 2
|
17天前
|
消息中间件 监控 Kafka
Apache Kafka 成为处理实时数据流的关键组件。Kafka Manager 提供了一个简洁的 Web 界面
随着大数据技术的发展,Apache Kafka 成为处理实时数据流的关键组件。Kafka Manager 提供了一个简洁的 Web 界面,方便管理和监控 Kafka 集群。本文详细介绍了 Kafka Manager 的部署步骤和基本使用方法,包括配置文件的修改、启动命令、API 示例代码等,帮助你快速上手并有效管理 Kafka 集群。
39 0
|
1月前
|
Web App开发 Java 测试技术
一、自动化:web自动化。Selenium 入门指南:从安装到实践
一、自动化:web自动化。Selenium 入门指南:从安装到实践
38 0
|
1月前
|
监控 Java Maven
springboot学习二:springboot 初创建 web 项目、修改banner、热部署插件、切换运行环境、springboot参数配置,打包项目并测试成功
这篇文章介绍了如何快速创建Spring Boot项目,包括项目的初始化、结构、打包部署、修改启动Banner、热部署、环境切换和参数配置等基础操作。
120 0
|
1月前
|
NoSQL Java 数据库连接
springBoot:整合其他框架&condition&切换web配置 (五)
本文档介绍了如何在Spring Boot项目中整合JUnit、Redis和MyBatis等框架,并提供了相应的依赖配置示例。同时,还展示了如何通过条件注解实现Bean的条件创建,以及如何切换Web服务器配置,从默认的Tomcat切换到Jetty。
|
28天前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
575 13
Apache Flink 2.0-preview released

推荐镜像

更多