当前位置: 首页 > news >正文

如何在 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-statusOrder deny,allowDeny from allAllow from 127.0.0.1 ::1Allow 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

相关文章:

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

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 ## 状态&#xff1a;已弃用本文涵盖的是不再受支持的 Ubuntu 版本。如果您目前正在运行 Ubuntu 12.04 服务器&#xff0c;我们强烈建议升…...

海信聚好看的DBDocter软件使用心得

在墨天轮大会看到这个软件,好称是内核级别的诊断工具, 工作空闲下载免费看看 结果要1.7GB还TAR. DBdoctor是一款内核级数据库性能诊断软件。可以对数据库做细粒度的扫描&#xff0c;帮助您一分钟内找到数据库性能问题&#xff0c;实现性能诊断百倍提效。针对数据库性能诊断门…...

dfs深搜

Problem - C - Codeforces 无向图,判断是否是子叶....

【React】详解 index.js 文件

文章目录 一、index.js文件的基本结构1. 引入必要的模块2. 渲染根组件3. 注册服务工作者&#xff08;可选&#xff09; 二、index.js文件的详细解析1. ReactDOM.render的作用2. 为什么使用React.StrictMode3. 服务工作者的注册 三、index.js文件的最佳实践1. 使用模块化引入2. …...

Android NDK/JNI面试题大全及参考答案(3万字长文)

目录 什么是NDK?它主要用来做什么? 为什么在Android开发中使用NDK? 描述一下NDK和JDK之间的关系 举出一些使用NDK开发的应用场景 什么是JNI?它如何与NDK配合使用? 如何安装和配置Android NDK? 在Android Studio中如何配置NDK路径? 描述一下NDK工具链中的主要工具…...

从根儿上学习spring一 之杂谈

相信学做Java开发的同学从开始工作时就被问及什么是spring的依赖注入&#xff0c;以及切面编程。今天我们简单再聊聊这两个概念。 依赖注入 这里的依赖不是动词依赖依靠的意思&#xff0c;而是名词。可以把这两个词翻过来读下”注入依赖“&#xff0c;所谓的依赖可以理解成一…...

AI智能名片小程序在促销性内容营销中的创新应用与策略分析

摘要&#xff1a;在数字化时代&#xff0c;企业营销手段日益丰富多元&#xff0c;促销性内容作为吸引顾客、促进消费的关键手段之一&#xff0c;其形式与效率不断被革新。随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;AI智能名片小程序作为一种新兴的营销…...

13. 罗马数字转整数【 力扣(LeetCode) 】

一、题目描述 罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符数值字符数值I1V5X10L50C100D500M1000 例如&#xff0c; 罗马数字 2 写做 II &#xff0c;即为两个并列的 1 。12 写做 XII &#xff0c;即为 X…...

0CTF/TCTF 2023 OLAPInfra Nashorn RCE + HDFS UDF RCE

前置知识 ClickHouse&#xff1a;是一个开源的列式数据库管理系统 clickhouse-jdbc-bridge&#xff1a;clickhouse数据库和jdbc交互的工具 HDFS&#xff08;Hadoop Distributed File System&#xff09;&#xff1a;专为大数据存储和处理而设计。 审计 <?php error_re…...

Studying-代码随想录训练营day56| 108.冗余连接、109.冗余连接II

第56天&#xff0c;图论06&#xff0c;并查集题目类型冗余连接(ง •_•)ง&#x1f4aa;&#xff0c;编程语言&#xff1a;C 目录 108.冗余连接 109.冗余连接II 总结 108.冗余连接 文档讲解&#xff1a;手撕冗余连接 题目&#xff1a;108. 冗余连接 (kamacoder.com) 学习&…...

基于springboot+vue+uniapp的智慧物业平台小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…...

MATLAB霍夫曼表盘识别系统

MATLAB霍夫曼表盘识别系统 一、介绍 本设计为基于MATLAB的表盘指针识别&#xff0c;算法原理是基于hough变换。可检测压力表&#xff0c;石英手表&#xff0c;电表刻度&#xff0c;气压表等带指针刻度的表盘。通过hough检测直线和圆的关系&#xff0c;得出指针夹角&#xff0…...

Python | Leetcode Python题解之第322题零钱兑换

题目&#xff1a; 题解&#xff1a; class Solution:def coinChange(self, coins: List[int], amount: int) -> int:dp [float(inf)] * (amount 1)dp[0] 0for coin in coins:for x in range(coin, amount 1):dp[x] min(dp[x], dp[x - coin] 1)return dp[amount] if d…...

python中类class的魔法方法

开始介绍之前&#xff0c;我们先看下之前文章我们介绍过的内置类merryview的一些方法&#xff0c;如下图所示&#xff1a; 有很多双下划线开始和结束的method&#xff0c;这么多method是做啥子用的呢&#xff1f; 其实这些方法就是我们常说的魔法方法&#xff0c;也是python中的…...

计算机体系结构和计算机组成原理的区别

如何理解计算机体系结构和计算机的组成&#xff1f;哪个对计算机的性能更重要&#xff1f;说明理由 目录 计算机体系结构 计算机组成 二者区别 哪个对性能更重要 计算机体系结构 计算机体系结构是指根据属性和功能不同而划分的计算机理论组成部分及计算机基本工作原理、理论…...

MySQL--数据库备份

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、为什么要备份 备份&#xff1a;能够防止由于机械故障以及人为误操作带来的数据丢失&#xff0c;例如将数据库文件保存在了其它地方。 冗余&#…...

influxDB的常用命令

目录 1.查看数据库命令 2.进入某数据库命令 3.创建表的命令 (host 和region 字段是必须的) 4.显示所有的表命令 5. 删除表 6.查询表数据 7.显示数据库用户 8.创建用户 9.创建管理员用户 10.修改密码(密码用单引号括住&#xff0c;不要用双引号) 11. 分配数据库访问权…...

使用 1panel面板 部署 springboot 和 vue

代码仓库&#xff1a;还没弄 目录 网站介绍安装步骤1. 准备云服务器2. 准备域名&#xff08;可跳过&#xff09;3. 安装1panel面板4. 服务器开放端口5. 进入1panel面板6. 安装并启动软件&#xff08;服务器和面板开放端口&#xff09;7. 打包并上传项目7.1 打包 Java项目&#…...

快速体验LLaMA-Factory 私有化部署和高效微调Llama3模型(曙光超算互联网平台异构加速卡DCU)

序言 本文以 LLaMA-Factory 为例&#xff0c;在超算互联网平台SCNet上使用异构加速卡AI 显存64GB PCIE&#xff0c;私有化部署Llama3模型&#xff0c;并对 Llama3-8B-Instruct 模型进行 LoRA 微调、推理和合并。 快速体验基础版本&#xff0c;请参考另一篇博客&#xff1a;快…...

Cocos Creator 3.8.x bundle设置最佳方案

A&#xff1a; 项目开始场景(Start Scene)加载显示最快的Bundle设置方案&#xff1a;不要使用resources文件夹&#xff0c;除了项目开始场景(Start Scene)所在文件夹&#xff0c;将所有文件分类设置成Bundle&#xff1b; B&#xff1a; A方案较为麻烦&#xff0c;项目文件夹多时…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...