如何使用Apache的mod

httpd的模块由google发布的开源代码,可鉯自动完成优化工作包括优化缓存,减少客户端服务器之间的通讯降低负载等等。部署d_pagespeed不用修改任何程序安装完成后重启apache,一切前端问题自动优化CDN服务商Cotendo已在其CDN服务器上部署d_pagespeed以加速客户网站访问,图片文件大小经自动压缩可减少20%-30%页面加载时间最多可缩短50%。GoDaddy也宣布將在其客户网站服务器上广泛部署d_pagespeed

五、d_pagespeed的配置一般在安装成功后,不需要任何配置就可以正常用当然,如果你有更高的要求可以参栲以下内容。

六、d_pagespeed的高级应用d_pagespeed中有一系列的默认的优化选项(filter)在安装完成之后自动打开,只需要重启一下Apache就可以看到效果了
}

质的压力测试看看该网站服务器在遇到拒绝服务(DOS)攻击时会有怎样的反应,并且演示它如何借助这些模块来反击我们在本教程中将使用CentOS平台。

要是你还没有启用CentOS/RHEL服务器Φ的EPEL软件库就需要先启用该软件库,之后再安装这些软件包

安装完成后,你会在/etc/httpd/conf.d里面找到主配置文件:

现在你需要确保Apache启动时装入這两个模块。在d_security.conf和d_evasive.conf中分别寻找下列行(如果没有这些行就添加上去):

?Loaddule指令告诉Apache链接对象文件(*.so),将它添加到活动模块列表

现在重启Apache网站垺务器:

为了使用d_security,必须先安装核心规则集(CRS)基本上而言,CRS为网站服务器提供了一套规则这套规则明确了在某些情形下服务器有怎样的荇为。Trustwave的SpiderLabs(开发d_security的公司)提供了开放式Web应用安全项目(OWASP)dSecurity

如果想下载并安装最新的OWASP

CRS可以使用下面这些命令。

现在浏览到已安装的OWASP

}

在本教程中您将使用“d_proxy”扩展將Apache作为反向代理来设置,以将传入连接重定向到在同一网络上运行的底层应用程序服务器有关使用Flask框架设置简单Web应用程序的指示信息,鉯显示Apache如何与隐藏在其后面的真实应用程序进行交互但是如果您有现有的应用程序服务器,也可以按照本教程操作

是一种代理服务器,它接收HTTP(S)请求并将其透明地分发到一个或多个后端服务器。反向代理很有用因为许多现代Web应用程序使用后端应用程序服务器处理傳入的HTTP请求,这些服务器不是直接由用户访问的通常只支持基本的HTTP功能。 您可以使用反向代理来防止直接访问这些底层应用程序服务器它们还可以用于将负载从传入请求分发到多个不同的应用程序服务器,从而提高规模性能并提供故障安全性它们可以填补应用程序服務器不提供的功能,例如缓存压缩或SSL加密。 在本教程中您将设置Apache作为基本反向代理,使用

扩展将传入连接重定向到运行在同一网络上嘚一个或多个后端服务器 本教程使用与

一起编写的简单后端,但您可以使用任何您喜欢的后端服务器

要遵循本教程,您需要:

  • Apache 2安装在您的服务器上按照第1步
  • 可选地,使用yum install nanonano文本编辑器 CentOS默认提供vi文本编辑器,但是nano可以更加用户友好

使用Apache作为反向代理所需的模块包括

本身和其附加模块,它扩展了其功能以支持不同的网络协议具体来说,我们将使用:

  • d_proxy 主代理模块Apache模块用于重定向连接;它允许Apache充当底層应用程序服务器的网关。

默认情况下在新安装的CentOS 7上启用所有四个模块。您可以通过运行以下命令来验证它们是否已启用:

命令输出将列出所有已启用的Apache模块你正在寻找的四行是前面提到的模块名称:

如果模块未启用,您可以通过打开具有

符号来取消注释带有必要模块嘚行因此文件看起来如下所示:

要使更改生效,请保存文件并重新启动Apache

Apache现在准备好作为HTTP请求的反向代理。在下一步中我们将创建两個非常基本的后端服务器。这些将帮助我们验证配置是否正常工作但如果您已经有自己的后端应用程序,则可以跳到第3步

第2步 - 创建後端测试服务器

运行一些简单的后端服务器是一个简单的方法来测试你的Apache配置是否正常工作。这里我们将使两个测试服务器响应HTTP请求,咑印一行文本一个服务器会说

注意:在非测试设置中,后端服务器通常都返回相同类型的内容然而,对于该测试特别是使两个服务器返回不同的消息,使得容易检查负载平衡机制是否使用两者

Flask是构建Web应用程序的Python微框架。我们使用Flask来创建测试服务器因为一个基本的應用程序只需要几行代码。你不需要知道Python来设置这些但是如果你想学习,你可以看看

现在所有必需的组件都已安装首先创建一个新文件,该文件将包含当前用户主目录中第一个后端服务器的代码

将以下代码复制到文件中,然后保存并关闭它

前两行初始化Flask框架。有一個函数

的返回值作为对指向应用程序的

root URL的HTTP请求的响应。 第二个后端服务器与第一个后端服务器完全相同除了返回到不同的文本行,所鉯从复制第一个文件开始

,然后保存并关闭文件

上启动第一个后台服务器。 这也将Flask的输出重定向到

因为它会进一步云控制台输出。

命令之前通过在同一行中设置

环境变量 环境变量是将信息传递到从shell生成的进程的一种方便的方法。 您可以在

中了解有关环境变量的更多信息 在这种情况下,使用环境变量确保设置仅适用于正在运行的命令并且将不会保留可用的,因为我们将传递另一个文件名以相同的方式告诉

命令启动第二个服务器 类似地使用此命令在端口

上启动第二台服务器。 请注意

您可以测试两个服务器正在使用

运行测试第一囼服务器:

在终端。测试第二台服务器:

注意 :要在不再需要它们后关闭两个测试服务器就像完成本教程时一样,您可以简单地执行killall flask

茬下一步中,我们将修改Apache的配置文件以便将其用作反向代理。

第3步 - 修改默认配置以启用反向代理

在本节中我们将设置默认的Apache虚拟主機,作为单个后端服务器或负载平衡后端服务器阵列的反向代理

:在本教程中,我们将在虚拟主机级别应用配置 在Apache的默认安装中,没囿配置虚拟主机 我们将创建一个单一的默认虚拟主机,以捕获所有流量 但是,您也可以在其他虚拟主机中使用所有这些配置碎片 要叻解有关Apache中虚拟主机的更多信息,您可以阅读

如果您的Apache服务器同时充当HTTP和HTTPS服务器,则您的逆向代理配置必须放在HTTP和HTTPS虚拟主机中要了解囿关使用Apache的SSL的更多信息,您可以阅读

或您喜欢的文本编辑器在

目录中创建一个新的空Apache配置文件来创建新的默认虚拟主机

下面的第一个示唎说明如何将默认虚拟主机配置为单个后端服务器的反向代理,第二个示例为多个后端服务器设置负载平衡反向代理

示例1 - 反向代理单個后端服务器

文件中,因此您的配置文件如下所示:

示例服务器请使用上面的块中写的

。如果您有自己的应用程序服务器请改用其地址。 这里有三个指令:

  • ProxyPreserveHost使Apache将原始Host头传递给后端服务器这是有用的,因为它使后端服务器知道用于访问应用程序的地址
  • ProxyPass是主要的代理配置指令。 在这种情况下它指定根URL( / )下的所有内容都应映射到给定地址的后端服务器。 例如如果Apache获取/example的请求,它将连接到http:// your_backend_server /example并将响应返囙到原始客户端
  • ProxyPassReverse应该具有与ProxyPass相同的ProxyPass 。它告诉Apache修改后端服务器的响应头这可以确保如果后端服务器返回一个位置重定向头,客户端的浏覽器将被重定向到代理地址而不是后端服务器地址,这将无法正常工作

要使这些更改生效,请重新启动Apache

现在,如果您在网络浏览器Φ访问

您将看到后端服务器响应,而不是标准的Apache欢迎页面 如果你遵循第2步,这意味着你会看到

示例2 - 跨多个后端服务器的负载平衡

如果您有多个后端服务器当代理使用d_proxy的负载平衡功能时,一种很好的方法来分配它们之间的流量 将

块中的所有内容替换为以下内容,因此您的配置文件如下所示:

配置与上一个类似但是不是直接指定单个后端服务器,而是使用了一个额外的

块来定义多个服务器 块名为

(名称可以自由更改),并由一个或多个

组成用于指定底层后端服务器地址。

的负载平衡器池而不是特定的服务器。 如果在第2步中

所寫如果您有自己的应用程序服务器,请改用其地址 要使这些更改生效,请重新启动Apache

如果您在网络浏览器中访问

,您将看到后端服务器的响应而不是标准的Apache页面。 如果你按照第2步多次刷新页面应该显示

,意味着反向代理工作并在两个服务器之间的负载平衡。

您现茬知道如何将Apache设置为一个或多个底层应用程序服务器的反向代理

可以有效地配置以大量语言和技术编写的应用程序服务器的逆向代理,唎如Python和Django或Ruby和Ruby on Rails它还可用于平衡多个后端服务器上的流量,以便为具有大量流量的站点提供高可用性或者为不支持SSL的后端服务器提供安全嘚SSL支持。 虽然

是可能最常用的模块组合但还有其他几个支持不同的网络协议。我们没有在这里使用它们但其他一些流行的模块包括:

}

我要回帖

更多关于 mod游戏盒 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信