Apache网页优化与安全优化(网页压缩;网页缓存;网页防盗链;隐藏版本信息)

1,网页压缩

网站的访问速度是由多个因素所共同决定的包括:

1)应用程序的响应速度

2)网络带宽

3)服务器性能

4)与客户端之间的网络传输速度等等

其中最重要的就是Apache本身的响应速度,因此提升网站性能第一个需要着手进行处理的便是尽可能地提升Apache的执行速度,使用网页压缩可以提升应用程序的速度,而且不需要任何成本.

Apache的压缩模块

Apache2.x内建了mod_deflate这个模块,使用gzip压缩算法。mod_deflate可使用DeflateCompressionLevel指令来设置压缩级别。该指令的值可为1至(压缩速度最快,压缩质量最低)9(压缩速度最慢,压缩质量最高)之间的整数,其默认值为6(压缩速度和压缩质量较为平衡的值)

(1)首先编译安装Apache源码包

yum –y remove httpd      #编译安装前将系统自带的httpd删掉

tar xzvf httpd-2.4.2.tar.gz -C /opt     #解压源码包

tar xzvf apr-util-1.4.1.tar.gz -C /opt     #解压依赖包

tar xzvf apr-1.4.6.tar.gz -C /opt          #解压依赖包,支持apache上层应用跨平台,提供底层接口库,有效缓解并发连接进程数

cp -R apr-util-1.4.1/ httpd-2.4.2/srclib/apr-util

cp -R apr-util-1.4.1/ httpd-2.4.2/srclib/apr-util

yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel        #安装组件包 构建编译环境

cd httpd-2.4.2/          #进入到httpd目录下进行配置,编译安装

./configure \

--prefix=/usr/local/httpd \                   #指定httpd安装目录

--enable-deflate \                               #加入mod_deflate模块

--enable-so \

--enable-rewrite \

--enable-charset-lite \

--enable-cgi

make && make install           #进行编译安装

cd /uar/local/httpd

grep -v "#" bin/apachectl >/etc/init.d/httpd                  #优化启动方式,可以使用service命令管理apache服务

vim /etc/init.d/httpd

#!/bin/bash

#chkconfig:2345 85 35                                       #在apache启动脚本里加入必要注释

#description:Apache is a web server

chmod 755 /etc/init.d/httpd

chkconfig --add httpd                               #设置apache服务开机自启

chkconfig httpd on

ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf       #在/etc目录下生成一个apache主配置文件的链接,方便管理。

(2)搭建一个web站点www.benet.com,并搭建一个DNS服务,解析域名。

vim /etc/httpd.conf

vim /etc/named.conf

vim /etc/named.rfc1912.zones

service named start

可以修改apache站点首页内容,加入图片信息,

vim  /usr/local/httpd/htdocs/index.html

使用浏览器输 入www.benet.com访问网页,然后使用抓包工具Fiddler进行抓包,

在没启用mod_deflate模块之前显示内容未进行压缩

(3)配置mod_ deflate模块启用

编译安装完成后,mod_deflate模块需要在httpd.conf文件里启用才能生效

vim /etc/httpd.conf

LoadModule filter_module modules/mod_filter.so

LoadModule headers_module modules/mod_headers.so              #开启模块服务

LoadModule deflate_module modules/mod_deflate.so

在httpd.conf配置文件末尾,加入mod_deflate的配置项。

<IfModule mod_deflate.c>

AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript         #第一行代表对什么样的内容启用gzip压缩

DeflateCompressionLevel 9                                                                                             #第二行代表压缩级别

SetOutputFilter DEFLATE                                                                                               #第三行代表启用deflate模块压对本站点的输出进行gzip压缩

</IfModule>

配置文件修改完成之后可以检测是否启用mod_deflate模块,然后启动apache服务

cd  /usr/local/httpd/bin

./apachectl –t –D DUMP_MODULES | grep “deflate”

service httpd start

(4)测试mod_deflate压缩是否生效

打开Fiddler抓包工具,用浏览器访问Apache服务器的页面,可以看到响应头中包含有Content-Encoding:gzip,表示压缩已经生效

2,网页缓存

网页缓存是将一部分经常不会改变或变动很少的页面缓存,下次浏览器再次访问这些页面时,不需要再次去下载这些页面,从而提高了用户的访问速度。

Apache的mod_exprices模块会自动生成页面头部信息中的Express标签和Cache-Control标签,客户端浏览器根据标签决定下次访问是在本地机器的缓存中获取页面,不需要向服务器发出请求,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的。

配置mod_exprices模块的步骤与mod_deflate模块相似。

在启用mod_exprices模块功能之前,可以打开浏览器输入www.benet.com访问网页,使用Fiddler抓包工具先抓取数据包,查看是否缓存设置expires项,可以和启用mod_exprices模块之后进行对比

(1)安装mod_ exprices模块

以刚才安装的apache源码包为基础,首先关闭apache服务,加入mod_exprices模块重新进行编译安装

service htted stop

cd /opt/httpd-2.4.2/

./configure \

--prefix=/usr/local/httpd \

--enable-deflate \                     # 加入mod_deflate模块

--enable-expires \                      #加入mod_exprices模块

--enable-so \

--enable-rewrite \

--enable-charset-lite \

--enable-cgi

Make && make install            #编译安装

(2)配置mod_exprices模块

vim  /etc/httpd.conf

LoadModule expires_module modules/mod_expires.so        #开启mod_exprices模块

在httpd.conf末尾添加mod_exprices模块设置项

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 60 seconds"                              #添加缓存时间60秒
</IfModule>

然后重新启动apache服务

service httpd restart

(3)测试缓存是否生效

打开Fiddler抓包工具,用浏览器访问Apache服务器的页面,可以看到响应头中包含有expires项,说明缓存已经在工作

3,防盗链

Apache的默认设置除了可以对性能进行优化外,还需要对安全性进行相应的设置,

如果一个网站中没有其页面中所说的图片信息,那么它完全可以链接到其他网站的图片信息上。这样。没有任何资源的网站利用了别的网站的资源来展示给浏览者,提高了自己的访问量,而大部分浏览者又不容易发现。一些不良网站为了不增加成本而扩充自己的站点内容,经常盗用其他网站的链接,一方面损害了源网站的合法利益,另一方面又加重了服务器的负担,因此我们需要设置防盗链

准备环境:

1)客户端使用Windows系统,IP地址192.168.30.100   搭建盗链网站www.test.com

2)源主机redhat6.5系统,IP地址192.168.30.15  搭建源网站www.benet.com

(1)在客户端搭建盗链网站www.test.com,并在hosts文件中加入以上IP地址与域名的映射关系

开启internet信息服务管理器

打开IIS,进行站点设定

新建一个文件,编写html格式,将图片信息指向源主机,并将文件格式修改为html格式,放入站点wwwroot

在hosts文件中加入映射关系

在浏览器中分别输入www.benet.comwww.test.com进行访问,可以看到图片内容没有差异,

使用Fiddler抓包工具抓取数据,可以看到先对www.test.com请求,然后对www.benet.com/abc.jpg请求,说明盗链成功

(2)apache防盗链配置

如果没有安装mod_rewrite模块,需要停止apache服务,重新编译安装,在参数中加入mod_rewrite模块。

cd httpd-2.4.2/

./configure \

--prefix=/usr/local/httpd \

--enable-deflate \

--enable-so \

--enable-rewrite \                      #加入mod_rewrite模块

--enable-charset-lite \

--enable-cgi

Make && make install

(3)配置mod_rewrite模块启用

vim /etc/httpd.conf

在站点目录结尾加入rewrite设定

<Directory "/usr/local/httpd/htdocs">

………………………………………………..

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^http://benet.com/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://benet.com/$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.benet.com/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.benet.com/$ [NC]

RewriteRule .*\.(gif|jpg|swf)$ http://www.benet.com/error.png

</Directory >

最终的匹配结果为:第二,三,四,五行的信任的站点,能够使用网站的图片;除了信任站点以外的站点,如果直接访问以gif,jpg,swf结尾的文件将跳转到重定向页面。

重新启动apache服务

(4)测试mod_rewrite重定向是否生效

清除浏览器的缓存,避免从本地读取缓存内容,将error.png这个图片移动到站点目录/usr/local/httpd/htdocs  ,再次访问网站,如下图所示

4,隐藏版本信息

一般情况下,软件的漏洞信息和特定的版本是相关的,因此软件的版本号对×××者来说是很有价值的,用Fiddler抓包工具可以看到apache的版本,

如果×××或别有用心的人得到apache的版本信息,就会有针对性地进行×××,给网站造成很大的损失,所以我们要隐藏apache的版本号,减少受×××的风险,保护服务器安全运行。

修改httpd.conf配置文件,使httpd-default.conf文件生效,它里面包含了是否返回版本信息的内容。

然后修改httpd-default.conf文件

重新启动apache服务,再次访问网页,使用Fiddler抓包工具抓取数据包,可以看到版本信息已经隐藏。

原文地址:http://blog.51cto.com/13728740/2157405

时间: 2024-10-13 17:24:10

Apache网页优化与安全优化(网页压缩;网页缓存;网页防盗链;隐藏版本信息)的相关文章

Apache安全优化:设置防盗链,隐藏版本信息 (内含Apache源码包和抓包工具)

防盗链:一些不良网站有时为了不增加成本又想扩充自己站点的内容,经常盗用其他网站的链接,一方面损害了原网站的合法利益,另一方面又加重了服务器的负担 隐藏版本信息:一般情况下,软件的漏洞信息和特定版本是相关的如果×××或别有用心之人得到了Apache的版本信息,就会使服务器遭受被×××的风险,为了防止这些事的发生,我们可以隐藏版本号,减少危险的发生 实验环境:一台linux作为web服务器,IP为192.168.100.222 一台win7作为盗链网站,IP为192.168.100.3 一台win7

查看nginx | apache | php | tengine | tomcat版本的信息以及如何隐藏版本信息

昨天配置nginx的时候说道隐藏版本信息的问题,今天就罗列一下 要操作的信息列表 nginx版本信息查询及隐藏 Apache版本信息查询及隐藏 php版本信息查询及隐藏 tengine版本信息查询及隐藏 tomcat版本信息查询及隐藏 详细操作步骤 1.1.nginx版本信息查询       [[email protected]_nginx ~]# nginx -vnginx version: nginx/1.6.0 1.2.nginx编译配置参数查询        [[email protec

apache调优隐藏版本信息及404重定向

生产环境中,部署了apache之后,我们应该从安全还是性能角度,在apache服务上线之前,对其做诸多的优化调试才行.   Apache 实验环境: apache版本:httpd-2.2.31 源码包存放位置:/usr/local/src 源码包编译安装位置:apache:/usr/local/apache2.2-xuegod/   技巧1: 安装apache屏蔽apache版本等敏感信息   查看apache版本信息: [[email protected]yeyou ~]# curl -Iww

Apache配置域名跳转、日志切割、静态缓存、防盗链、访问控制

·/usr/local/apache2/bin/apachectl  -M:查看安装了哪些模块 ·/usr/local/apache/bin/apachectl   -V:查看使用的模式 ·/usr/local/apache2/bin/apachectl  -t:检查语法错误 ·/usr/local/apache2/bin/apachectl  -l:查看安装的库文件 ·/usr/local/apache2/bin/apachectl graceful:重新加载配置 ·/usr/local/ap

apache 隐藏版本信息隐藏敏感信息

如果我们想隐藏apache的版本信息,或者隐藏apache的敏感信息需要我们在编译之前对以下文件进行修改:(我们以apache的2.2.27版本为列) vim /usr/local/tools/httpd-2.2.27/include/ap_release.h #define AP_SERVER_BASEPRODUCT "Apache"                   改成  Microsoft-IIS 下面标红的是指的apache的版本信息,我们可以做相对应的修改#define

apache安全之修改或隐藏版本信息

修改apache版本信息    在安装之前,编辑原文件httpd-2.2.31/include/ap_release.h文件如下:     40 #define AP_SERVER_BASEVENDOR "IIS"     41 #define AP_SERVER_BASEPROJECT "IIS HTTP Server"     42 #define AP_SERVER_BASEPRODUCT "IIS"     43      44 #def

apache配置-域名跳转、日志切割、静态缓存、防盗链

·/usr/local/apache2/bin/apachectl -M:查看安装了哪些模块     ·/usr/local/apache2/bin/apachectl -t:检查语法错误 ·/usr/local/apache2/bin/apachectl -l:查看安装的库文件 ·/usr/local/apache2/bin/apachectl graceful:重新加载配置·/usr/local/apache2/htcocs         主页存放目录 ·/usr/local/apache

Apache配置用户认证、域名跳转、日志轮询、静态文件缓存、防盗链

使用版本为httpd-2.2.29 源码编译安装环境. 1.配置网站用户认证 编辑虚拟机主机配置文件 /usr/local/apache2/conf/extra/httpd-vhosts.conf,在虚拟主机配置文件段内加入绿色标示代码: <VirtualHost *:80> DocumentRoot "/data/www" ServerName www.123.com ServerAlias www.a.com www.b.com     <Directory *&

Apache的压缩与缓存-----网页优化

一.Apache网页的压缩 定义:对apache服务器发布的网页内容进行压缩后再发送到客户端的浏览器.减少了网络传输用时,也加快了网页加载的速度. mod_gzip 模块与mod_deflate 模块 1.两者均使用gzip压缩算法,运作原理类似2.mod_deflate 压缩速度略快,而mod_gzip 的压缩比略高3.mod_gzip 对服务器CPU的占用要高- -些4.高流量的服务器,使用mod_deflate 可能会比mod_gzip 加载速度更快 实验走起 1.代码步骤如下: [[em