码迷,mamicode.com
首页 > Web开发 > 详细

Apache 网页与安全优化

时间:2018-08-27 12:33:48      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:替代   页面缓存   tee   none   cal   headers   mct   站点   排名   

Apache 网页与安全优化

?

  • 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.so
    LoadModule 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 -t
    Syntax 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 -t
    Syntax 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 网页与安全优化

标签:替代   页面缓存   tee   none   cal   headers   mct   站点   排名   

原文地址:http://blog.51cto.com/13630803/2164753

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!