Apache网页优化与安全
一、Apache网页优化
1.1、概述
企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代
为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化的内容
1.2、gzip介绍
配置Apache的网页压缩功能,是使用gzip压缩算法来对网页内容进行压缩后再传输到客户端浏览器
作用
- 降低了网络传输的字节数,加快网页加载的速度
- 节省流量,改善用户的浏览体验
- 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网页优化与安全的更多相关文章
- Apache网页优化
目录: 一.Apache网页优化概述 二.网页压缩 三.网页缓存 四.隐藏版本信息 五.Apache防盗链 一.Apache网页优化概述 在企业中,部署Apache后只采用默认的配置参数,会引发网站很 ...
- Apache——网页优化与安全
Apache--网页优化与安全 1.Apache 网页优化概述 2.网页压缩 3.网页缓存 4.隐藏版本信息 5.Apache 防盗链 1.Apache 网页优化概述: 企业中,部署Apache后只采 ...
- Apache性能优化总结
1.介绍 首先要了解Apache采用的MPM(Multi -Processing Modules,多道处理模块),MPM是Apache的核心,它的作用是管理网络连接.调度请求.Apache2.0中MP ...
- Apache性能优化、超时设置,linux 重启apache
在httpd.conf中去掉Include conf/extra/httpd-default.conf前的#以使httpd-default.php生效.其中调节以下参数Timeout 15 (连接超时 ...
- 网页优化URI(http URI scheme与data URI scheme)
网页优化的一大首要任务是减少HTTP 请求 (http request) 的次数,例如通过合并多个JS文件,合并CSS样式文件.除此之外,还有一个data URL 的密技,让我们直接把图像的内容崁入网 ...
- CentOS系统Apache服务器优化详解
1.Apache优化 Apache能够在CentOS系统正常运行.但是,对于访问量稍大的站点,Apache的这些默认配置是无法满足需求的,我们仍需调整Apache的一些参数,使Apache能够在大访问 ...
- CSS.05 -- 规避脱标 定位的盒子居中、CSS标签规范、溢出隐藏、内容移除(网页优化)、CSS精灵图
规避脱标 定位的盒子居中显示 Margin:0 auto : 只能让标准流的盒子居中对齐 当A是B的父系,B可以使用 margin-left:auto: 来获得相当于定位right:0:的效果 M ...
- linux apache服务器优化建议整理(很实用)
转载:http://www.cnblogs.com/zhongbin/archive/2013/06/11/3131865.html 1.apache服务器的time_wait过多 fin_wait1 ...
- apache配置优化 - 解决apache环境下网站访问速度慢的问题(重点参考)
如果apche访问量过大,将会导致页面打开迟缓,下载速度也降低,如果由于经费和环境问题,集群方案没有得以应用.可以通过对Apache2增加模块MPM来进行优化, 这里我选择线程型MPM加以优化: 开 ...
随机推荐
- Vue 动态组件和异步组件
基础案例 动态组件切换类比"bilibili-个人中心"的横向菜单切换不同的标签页的功能. 在Vue中可以使用 component 标签,并加一个特殊的属性(attribute) ...
- Spring:Spring嵌套事务方式
Spring遇到嵌套事务时,怎么实现 实验时却遇到一个奇怪的问题: 1.当ServiceA.a()方法调用ServiceB.b()方法时,内层事务提交和回滚,都不受外层事务提交或回滚的影响. 2.当S ...
- php操作redis集群哨兵模式
前段时间项目里正好用到了redis的集群哨兵部署,因为此前并无了解过,所以一脸懵逼啊,查阅了几篇资料,特此综合总结一下,作为记录. 写在前沿:随着项目的扩张,对redis的依赖也越来越大,为了增强re ...
- 记两道最近做的pwn题(ciscn_2019)
这两题为什么要记录呢,一个是我发现网上很多教程没写清楚(也可能是我太菜了),二是细节点很多,不同的大佬方式不太一样,有很多细节需要注意 ciscn_2019_es_2 这题是栈迁移的题,先上exp 1 ...
- 使用 Java 和 Maven (JBake) 生成静态网站
使用 JBake("mvn generate-resources")构建您的静态网站或博客.使用布局.宏和数据文件. 我们迁移了整个www.optaplanner.org网站(13 ...
- win10 sql2008r2网页不能使用数据,需要开启端口1433
1.打开sql server configuratiton Manager 2.sqlserver网络配置--SQLEXPRESS的协议:都启用 3.双击TCP/IP:选择"IP地址&quo ...
- Java基础00-异常25
1. 异常 异常 1.1 异常概述 1.2 JVM的默认处理方案 有一行代码报错,下面的代码就不会执行. 1.3 异常处理 如果程序出现了异常,需要我们自己来处理,因为在实际的开发中,不能因为一处的报 ...
- Java基础00-运算符4
1. 算术运算符 1.1 运算符和表达式 1.2 算数运算符 余数的计算取余数是指整数除法中被除数未被除尽部分,且余数的取值范围为0到除数之间(不包括除数)的整数 ,例如27除以6,商数为4,余数为3 ...
- 认识vue-cli脚手架
ps:脚手架系列主要记录我自己(一名前端小白)对脚手架学习的一个过程,如有不对请帮忙指点一二! [抱拳] 作为一名前端开发工程师,平时开发项目大多都离不开一个重要的工具,那就是脚手架.下面让我们来了解 ...
- 在 Intenseye,为什么我们选择 Linkerd2 作为 Service Mesh 工具(Part.2)
在我们 service mesh 之旅的第一部分中,我们讨论了"什么是服务网格以及我们为什么选择 Linkerd2?".在第二部分,我们将讨论我们面临的问题以及我们如何解决这些问题 ...