Apache——网页优化与安全

1、Apache 网页优化概述

2、网页压缩

3、网页缓存

4、隐藏版本信息

5、Apache 防盗链

1、Apache 网页优化概述:

  • 企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代
  • 为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化的内容

gzip 介绍:

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

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

  

Apache的压缩模块:

功能模块:

mod_gzip模块
mod_deflate模块

  

Apache 1.x

没有内建网页压缩技术,但可使用第三方mod_gzip模块执行压缩

 Apache 2.x

在开发的时候,内建了mod_deflate这个模块,取代了mod_gzip

两者比较:

两者均使用gzip压缩算法,运行原理相似
mod_deflate压缩速度略快,而mod_gzip的压缩比略高
mod_gzip对服务器CPU的占用要高一些
高流量的服务器,使用mod_deflate可能会比mod_gzip加载速度更快

 

2、网页压缩:

a)检查是否安装mod_ deflate 模块

apachectl -t -D DUMP_MODULES | grep "deflate"

  

b)如果没有安装mod_deflate 模块,重新编译安装 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

  

c)配置 mod_deflate 模块启用

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

 

-----52行-----修改

Listen 20.0.0.20:80

  

-----105行-----取消注释

LoadModule deflate_module modules/mod_deflate.so  #开启mod_deflate 模块

  

-----199行-----取消注释,修改

ServerName www.lvbu.com:80

  

-----末行添加-----

<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>

  

d)检查安装情况,启动服务

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

  

e)测试 mod_deflate 压缩是否生效

cd /usr/local/httpd/htdocs

先将图片.jpg文件传到/usr/local/httpd/htdocs目录下  

vim index.html

<meta charset="utf-8">
<html><body><h1>
爱情受过伤,为爱跳过鸭绿江!</h1>
<img src="lic.png"/>
</body></html> systemctl restart httpd.service

  

方法一:
在Linux系统中,打开火狐浏览器,右击点查看元素
选择 网络→重新载入→选择 HTML、WS、其他
访问 http://192.168.184.10 ,查看响应头中包含 Content-Encoding: gzip
进入虚拟机进行验证

方法二: 在虚拟机Windows系统中依次安装 Microsoft.NET4 和fiddler 软件,打开fiddler 软件 win10仅需安装fiddler.exe,无脑安装 选择 inspectors —> 选择 Headers 浏览器访问 http://192.168.184.10 ,双击200响应消息查看 Content-Encoding: gzip

3、网页缓存:

a)检查是否安装 mod_expires 模块

apachectl -t -D DUMP_MODULES | grep "expires"

  

b)如果没有安装mod_expires 模块,重新编译安装 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

  

c)配置 mod_expires 模块启用

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

 

-----52行-----修改

Listen 20.0.0.20:80

  

-----111行-----取消注释

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

  

-----199行-----取消注释,修改

ServerName www.lvbu.com:80

  

-----末行添加-----

<IfModule mod_expires.c>
ExpiresActive On #打开网页缓存功能
ExpiresDefault "access plus 60 seconds" #设置缓存60秒
</IfModule>

  

d)检查安装情况,启动服务

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

  

e)测试缓存是否生效

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

  

方法一:
在Linux系统中,打开火狐浏览器,右击点查看元素
选择 网络 —> 选择 HTML、WS、其他
访问 http://20.0.0.14 ,双击200消息查看响应头中包含 Expires 项

方法二:
在Windows系统中依次安装 Microsoft.NET4 和fiddler 软件,打开fiddler 软件
选择 inspectors —> 选择 Headers
浏览器访问 http://20.0.0.14 ,双击200消息查看 Expires 项

4、隐藏版本信息:

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

-----491行-----取消注释

Include conf/extra/httpd-default.conf

  

vim /usr/local/httpd/conf/extra/httpd-default.conf

 -----55行-----修改 

ServerTokens Prod            #将原本的 Full 改为 Prod,只显示名称,没有版本
#ServerTokens 表示 Server 回送给客户端的响应头域是否包含关于服务器 OS 类型和编译过的模块描述信息。 systemctl start httpd.service

  

5、Apache防盗链:

防盗链是防止别人的网站代码里面盗用我们自己服务器上的图片、文件、视频等相关资源
如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力
作为网站的维护人员,要杜绝服务器的静态资源被其他网站盗用

防盗链过程:

a)检查是否安装 mod_rewrite 模块

pachectl -t -D DUMP_MODULES | grep "rewrite" 

b)如果没有安装mod_rewrite 模块,重新编译安装 Apache 添加 mod_rewrite模块

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
make && make install

  

c)配置 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://lvbu.com/.*$ [NC] #设置匹配规则
RewriteCond %{HTTP_REFERER} !^http://lvbu.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.lvbu.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.lvbu.com/$ [NC]
RewriteRule .*\.(gif|jpg|lvbu)$ http://www.lvbu.com/error.png #设置跳转动作

  

 

 

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

  1. Apache网页优化与安全

    目录 一.Apache网页优化 1.1.概述 1.2.gzip介绍 1.3.Apache的压缩模块 二.网页压缩实验 2.1.检查是否安装mod_deflate模块 2.2.重新编译安装Apache添 ...

  2. Apache网页优化

    目录: 一.Apache网页优化概述 二.网页压缩 三.网页缓存 四.隐藏版本信息 五.Apache防盗链 一.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. SpringBoot集成Actuator健康指示器health

    1.说明 本文详细介绍Actuator提供的HealthIndicators, 即健康指示器的配置使用, 利用自动配置的健康指标, 检查正在运行的应用程序的状态, 以及自定义健康指标的方法. 监控软件 ...

  2. PathCopyCopy一键复制文件路径

    1.简介 PathCopyCopy一键复制文件/文件夹名称和路径, 右键文件或者文件夹,可以复制名称,路径和父目录等. 2.推荐理由 当我们想拷贝文件名或者文件路径时,简直是神器啊,实测真的好用. 还 ...

  3. 02.python线性数据结构

    内建常用数据类型 分类 数值型 int.float.complex.bool 序列sequence 字符串str.字节序列bytes.bytearray 列表list.元组tuple 键值对 集合se ...

  4. Snack3 3.2 发布,轻量的Json+Jsonpath框架

    Snack3 是一个轻量的 JSON + Jsonpath 框架. 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计.其下一切数据都以ONode表 ...

  5. Python max()方法扩展:求字典中值最大的键

    重要的应该写在前面[捂脸]   场景一:仅求最大值对应的键,代码如下: >>> dic = {'A':4, 'B':2, 'C':3} >>> max_key = ...

  6. VsCode安装与配置

    一.安装 二.配置 开启emmet完整的语法 文件-首选项-设置:Emmet: Trigger Expansion On Tab 三.常用插件 必装: Chinese (Simplified) Lan ...

  7. Solon 开发,四、Bean 扫描的三种方式

    Solon 开发 一.注入或手动获取配置 二.注入或手动获取Bean 三.构建一个Bean的三种方式 四.Bean 扫描的三种方式 五.切面与环绕拦截 六.提取Bean的函数进行定制开发 七.自定义注 ...

  8. 更快的Maven构建工具mvnd和Gradle哪个更快?

    Maven 作为经典的项目构建工具相信很多人已经用很久了,但如果体验过 Gradle,那感觉只有两个字"真香". 前段时间测评了更快的 Maven 构建工具 mvnd,感觉性能挺高 ...

  9. 001 研发同学必学哪些 Linux 命令?

    01 研发同学为啥要掌握 Linux 命令? 身为研发同学,Linux 是绕不过去的一个小山包,不是说要掌握的十分精通,在程序员界里做个极客,也不是说要抢了 Devops 同学的饭碗,但至少要做到摆脱 ...

  10. Oracle dg 状态校验

    查看主库状态: select open_mode,protection_mode,database_role,switchover_status from v$database; OPEN_MODE ...