目录

一、Apache网页优化

1.1、概述

企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代

为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化的内容

1.2、gzip介绍

配置Apache的网页压缩功能,是使用gzip压缩算法来对网页内容进行压缩后再传输到客户端浏览器

作用

  1. 降低了网络传输的字节数,加快网页加载的速度
  2. 节省流量,改善用户的浏览体验
  3. gzip与搜索殷勤的抓取工具有着更好的关系

1.3、Apache的压缩模块

mod_gzip模块

mod_deflate模块

两者均使用gzip压缩算法,运行原理相似

mod_deflate压缩速度略快,而mod_gzip的压缩比略高

mod_gzip对服务器CPU的占用要高一些

高流量的服务器,使用mod_deflate可能会比mod_gzip加载速度更快

二、网页压缩实验

2.1、检查是否安装mod_deflate模块

apachectl -t -D DUMP_MODULES | grep "deflate"

2.2、重新编译安装Apache添加mod_deflate模块

systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-deflate #加入mod_deflate模块 make && make install

2.3、修改配置文件

vim /usr/local/httpd/conf/httpd.conf
1.Listen 192.168.80.12:80 #52行修改
2.LoadModule deflate_module modules/mod_deflate.so #105行取消注释,开启mod_deflate 模块
3.ServerName www.123.com:80 #199行取消注释,修改
4.<IfModule mod_deflate.c> #末行添加
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/png #代表对什么样的内容启用gzip压缩
DeflateCompressionLevel 9 #代表压缩级别,范围为1~9
SetOutputFilter DEFLATE #代表启用deflate 模块对本站点的输出进行gzip压缩
</IfModule>

2.4、检查安装情况,启动服务

apachectl -t			                         #验证配置文件的配置是否正确
apachectl -t -D DUMP_MODULES | grep "deflate" #检查 mod_deflate 模块是否已安装
deflate_module (shared) #已安装的正确结果 systemctl start httpd.service

2.5、测试mod_deflate压缩是否生效

三、网页缓存实验

3.1、检查是否安装mod_expires模块

apachectl -t -D DUMP_MODULES | grep "expires"

3.2、重新编译安装Apache添加 mod_expires模块

systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak2 yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-deflate
--enable-expires #加入mod_expires 模块
make && make install

3.3、修改配置文件,启动mod_expires模块

vim /usr/local/httpd/conf/httpd.conf
1.Listen 192.168.80.12:80 #52行修改
2.LoadModule expires_module modules/mod_expires.so #111行取消注释,开启mod_deflate 模块
3.ServerName www.123.com:80 #199行取消注释,修改
4.<IfModule mod_expires.c> #末行添加
ExpiresActive On #打开网页缓存功能
ExpiresDefault "access plus 60 seconds" #设置缓存60秒
</IfModule>

3.4、检查安装情况,启动服务

apachectl -t			                            #验证配置文件的配置是否正确
apachectl -t -D DUMP_MODULES | grep "expires" #检查 mod_expires模块是否已安装
deflate_module (shared) #已安装的正确结果 systemctl start httpd.service

Linux系统

windows系统,win10安装fiddler软件

四、Apache网页安全优化(隐藏版本信息)

未配置前可以看到版本信息

4.1、修改配置文件

vim /usr/local/httpd/conf/httpd.conf
1.Include conf/extra/httpd-default.conf #491行取消注释 vim /usr/local/httpd/conf/extra/httpd-default.conf
2.ServerTokens Prod #55行修改,将原本的Full改为 Prod,只显示名称,没有版本
注:ServerTokens表示 Server回送给客户端的响应头域是否包含关于服务器OS类型和编译过的模块描述信息。 systemctl start httpd.service

4.2、测试

五、Apache防盗链实验

1.防盗链是防止别人的网站代码里面盗用我们自己服务器上的图片、文件、视频等相关资源

2.如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力,作为网站的维护人员,要杜绝服务器的静态资源被其他网站盗用

5.1、检查检查是否安装 mod rewrite 模块

apachectl -t -D DUMP_MODULES | grep "rewrite"

5.2、重新编译安装Apache添加mod_rewrite模块

systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak3 yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel cd /opt/httpd-2.4.29
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \ #加入mod_rewrite模块
--enable-charset-lite \
--enable-cgi \
--enable-deflate \
--enable-expires make && make install

5.3、配置mod_rewrite模块

vim /usr/local/httpd/conf/httpd.conf

-----157行-----取消注释
LoadModule rewrite_module modules/mod_rewrite.so -----224行----- <Directory "/usr/local/httpd/htdocs">
Options Indexes FollowSymLinks #默认开启
AllowOverride None #默认开启
Require all granted #默认开启 RewriteEngine On #打开rewrite功能,加入mode_rewrite模块内容
RewriteCond %{HTTP_REFERER} !^http://123.com/.*$ [NC] #设置匹配规则
RewriteCond %{HTTP_REFERER} !^http://123.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.123.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.123.com/$ [NC]
RewriteRule .*\.(gif|jpg|swf|png)$ http://www.123.com/error.png #设置跳转动作

5.4、检查安装情况,启动服务

apachectl -t			                            #验证配置文件的配置是否正确
apachectl -t -D DUMP_MODULES | grep "rewrite" #检查mod_rewrite模块是否已安装
deflate_module (shared) #已安装的正确结果 systemctl start httpd.service

Apache网页优化与安全的更多相关文章

  1. Apache网页优化

    目录: 一.Apache网页优化概述 二.网页压缩 三.网页缓存 四.隐藏版本信息 五.Apache防盗链 一.Apache网页优化概述 在企业中,部署Apache后只采用默认的配置参数,会引发网站很 ...

  2. Apache——网页优化与安全

    Apache--网页优化与安全 1.Apache 网页优化概述 2.网页压缩 3.网页缓存 4.隐藏版本信息 5.Apache 防盗链 1.Apache 网页优化概述: 企业中,部署Apache后只采 ...

  3. Apache性能优化总结

    1.介绍 首先要了解Apache采用的MPM(Multi -Processing Modules,多道处理模块),MPM是Apache的核心,它的作用是管理网络连接.调度请求.Apache2.0中MP ...

  4. Apache性能优化、超时设置,linux 重启apache

    在httpd.conf中去掉Include conf/extra/httpd-default.conf前的#以使httpd-default.php生效.其中调节以下参数Timeout 15 (连接超时 ...

  5. 网页优化URI(http URI scheme与data URI scheme)

    网页优化的一大首要任务是减少HTTP 请求 (http request) 的次数,例如通过合并多个JS文件,合并CSS样式文件.除此之外,还有一个data URL 的密技,让我们直接把图像的内容崁入网 ...

  6. CentOS系统Apache服务器优化详解

    1.Apache优化 Apache能够在CentOS系统正常运行.但是,对于访问量稍大的站点,Apache的这些默认配置是无法满足需求的,我们仍需调整Apache的一些参数,使Apache能够在大访问 ...

  7. CSS.05 -- 规避脱标 定位的盒子居中、CSS标签规范、溢出隐藏、内容移除(网页优化)、CSS精灵图

    规避脱标   定位的盒子居中显示 Margin:0 auto : 只能让标准流的盒子居中对齐 当A是B的父系,B可以使用 margin-left:auto: 来获得相当于定位right:0:的效果 M ...

  8. linux apache服务器优化建议整理(很实用)

    转载:http://www.cnblogs.com/zhongbin/archive/2013/06/11/3131865.html 1.apache服务器的time_wait过多 fin_wait1 ...

  9. apache配置优化 - 解决apache环境下网站访问速度慢的问题(重点参考)

    如果apche访问量过大,将会导致页面打开迟缓,下载速度也降低,如果由于经费和环境问题,集群方案没有得以应用.可以通过对Apache2增加模块MPM来进行优化, 这里我选择线程型MPM加以优化:  开 ...

随机推荐

  1. centos 8 sonarqube 设置开机自启动解决方案

    编写开机自启动脚本 进入到开机自启动调用文件目录 vim /etc/systemd/system/sonarqube.service [Unit] Description=SonarQube serv ...

  2. JavaScript中for...in循环使用问题

    问题 使用for...in去遍历一个数组,同时将值添加到另外一个数组时,新的数组中每次都多出来一个function类型的元素. 原因及解决方案 for...in用来循环本身没有问题,但是经常被误用来遍 ...

  3. 我用段子讲.NET之依赖注入其二

    <我用段子讲.NET之依赖注入其二> "随着我们将业务代码抽象化成接口和实现两部分,这也使得对象生命周期的统一管理成为可能.这就引发了第二个问题,.NET Core中的依赖注入框 ...

  4. ZYNQ 中PS端GPIO EMIO使用

    ZYNQ 中PS端GPIO EMIO使用 在使用ZYNQ进行开发设计时,往往需要对一些GPIO引脚进行配置,传统的配置方法通常在PL端进行管脚约束之后在Verilog代码中对相应引脚进行配置.这样如果 ...

  5. Django基础-03篇 操作Django自带的admin后台

    1.使用model.py来定义表结构,使用命令同步到数据库 python manage.py makemigrations #生成表结构(py) python manage.py makemigrat ...

  6. docker容器技术基础之linux cgroup、namespace

    一.开头 接触过docker的同学多多少少听过这样一句话"docker容器通过linux namespace.cgroup特性实现资源的隔离与限制".今天我们来尝试学习一下这两个东 ...

  7. endless 如何实现不停机重启 Go 程序?

    转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/584 前几篇文章讲解了如何实现一个高效的 HTTP 服务,这次我们来 ...

  8. 跟我一起学Go系列:gRPC 全局数据传输和超时处理

    gRPC 在多个 GoRoutine 之间传递数据使用的是 Go SDK 提供的 Context 包.关于 Context 的使用可以看我之前的一篇文章:Context 使用. 但是 Context ...

  9. 技术期刊 · 天光台高未百尺 | Uber 工程师的 JS 算法课;大数据时代的个人隐私;设计师的 Github;告别 PPT 工程师;从零开始实现的像素画

    蒲公英 · JELLY技术期刊 Vol.42 这是一个最好的时代,多样化的平台给了所有人成长发展的机会,各种需求和解决需求的人让人大开眼界:但这也并不是完美的时代,"前端还需要懂什么算法?& ...

  10. 【Lucas组合数定理】组合-FZU 2020

    组合 FZU-2020 题目描述 给出组合数C(n,m), 表示从n个元素中选出m个元素的方案数.例如C(5,2) = 10, C(4,2) = 6.可是当n,m比较大的时候,C(n,m)很大!于是x ...