?
?Apache是一个跨平台的web服务器,由于其简单高效、稳定安全的特性,被广泛应用于计算机技术的各个领域。现在,Apache凭借其庞大的用户数,已成为用户数排名第一的web服务器。
?**尽管如此,在实际的生产环境中,我们仍然不可能直接使用默认配置的Apache来充当服务器。毕竟,为了更充分合理地利用Apache服务器,我们都应该根 据自己的实际需要对Apache的默认配置作出一些必要的调整。
需要编译Apache添加优化模块(安装详细操作)
# cd /opt/httpd-2.4.2# ./configure --prefix=/usr/local/httpd \ ???//安装目录--enable-deflate \ ?????????????//压缩模板--enable-expires \ ???????????//支持 HTTP 控制--enable-so \ ???????????????????//让apache核心装载DSO--enable-rewrite \ ????????????//启用重写功能 --enable-charset-lite \ ??????//启动字符集支持--enable-cgi ?????????????????????//启用CGI脚本程序支持,便于扩展网站的应用访问能力 # make && make install
?
网页压缩( 网页加载速度加快 节省流量)
Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台。当应用Gzip压缩到一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小。这取决于文件中的内容。 利用Apache中的Gzip模块,我们可以使用Gzip压缩算法来对Apache服务器发布的网页内容进行压缩后再传输到客户端浏览器。这样经过压缩后实际上降低了网络传输的字节数,最明显的好处就是可以加快网页加载的速度。
# vim /etc/httpd.conf打开Apache主配置文件 ?去掉下面三行前面 #LoadModule headers_module modules/mod_headers.soLoadModule deflate_module modules/mod_deflate.so ???LoadModule filter_module modules/mod_filter.so........................................在Apache主配置文件末尾添加<IfModule mod_deflate.c> ???AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript ???DeflateCompressionLevel 9 ???SetOutputFilter DEFLATE</IfModule>注解:<IfModule mod_deflate.c>对html、plain、css、xml、javacript内容启用gzip压缩是指压缩程度的等级,从1到9,9是最高等级,级别越高,压缩越小对上面设置的所有 输出启用压缩</IfModule>
验证语法和模块
# cd /usr/local/httpd/bin# ./apachectl -tSyntax OK ????//验证配置文件成功# ./apachectl -t -D DUMP_MODULES | grep "deflate"deflate_module (shared)# systemctl restart httpd ??//重启服务
- 网页缓存
网页缓存是将一部分经常不会改变或变动很少的页面缓存,下次浏览器再次访问这些页面时,不需要再次去下载这些页面,从而提高了用户的访问速度
???# vim /etc/httpd.conf ???Apache主配置开启模块(去#号) ???LoadModule expires_module modules/mod_expires.so ???配置文件末尾添加 ???<IfModule mod_expires.c> ???????ExpiresActive On ???????ExpiresDefault "access plus 50 seconds" ????????#缓存为50秒 ???</IfModule>
验证语法和模块
# cd /usr/local/httpd/bin# ./apachectl -tSyntax OK ????//验证配置文件成功# ./apachectl -t -D DUMP_MODULES | grep "expires"expires_module (shared)# systemctl restart httpd ??//重启服务
Apache安全优化
?
- 隐藏版本
隐藏版本可以减少被攻JI的风险,保护服务器安全运行。
???# vim /etc/httpd.conf ?(去掉下面配置行的#) ???Include conf/extra/httpd-default.conf ???# vim /usr/local/httpd/conf/extra/httpd-default.conf ???ServerTokens Prod ???????????//修改成Prod ??只显示名称,没有版本 ???ServerSignature Off ???# systemctl restart httpd ??//重启服务
- 防盗链
现在很多长站都是直接使用其它网站上的资源,如果你网站带宽性能不好,很容易给这类网站把流量费光了,下面我来介绍在Apache环境防盗链配置方法,这他们无法直接使用你网站资源哦。
主配置文件修改
???# vim /etc/httpd.conf ??????LoadModule rewrite_module modules/mod_rewrite.so ??//去掉#号 开启 ???................................... ???????<Directory "/usr/local/httpd/htdocs"> ??????????????????Options Indexes FollowSymLinks ?????????//215行添加 ???????????AllowOverride None ???????????Require all granted ???????????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 [R,NC,L] ???????#设置规则 盗用gif jpg swf 结尾的文件时 ?跳转盗链的替代图片:(error.png图片放在站点目录下) ???????.........省略n行 ???????</Directory> ???????(.*$:以任意字符结尾 ???????????NC:不区分大写 ???????????R:强制跳转)
??????
测试
# vim /usr/local/httpd/htdocs/index.html ?//编辑默认首页<html><body><h1>It works!</h1><img src=‘test.jpg‘ /> ????//添加测试图片</body></html>
- 再开一台web服务器
编辑一个盗链网页
# vim /usr/local/httpd/htdocs/index.html ????//编辑盗链的首页<html><body><h1>It works!</h1><img src=‘http://www.bt.com/test.jpg‘/>; ????//注意使用目标的图片地址</body>
- 访问盗链网页
可以看到跳转到 站点里恶 error.png 图片了
Apache 网页与安全优化
原文地址:http://blog.51cto.com/13630803/2164753