目录

一、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模块

  1. apachectl -t -D DUMP_MODULES | grep "deflate"

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

  1. systemctl stop httpd.service
  2. cd /usr/local/httpd/conf
  3. mv httpd.conf httpd.conf.bak
  4. yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
  5. cd /opt/httpd-2.4.29/
  6. ./configure \
  7. --prefix=/usr/local/httpd \
  8. --enable-so \
  9. --enable-rewrite \
  10. --enable-charset-lite \
  11. --enable-cgi \
  12. --enable-deflate #加入mod_deflate模块
  13. make && make install

2.3、修改配置文件

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

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

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

2.5、测试mod_deflate压缩是否生效

三、网页缓存实验

3.1、检查是否安装mod_expires模块

  1. apachectl -t -D DUMP_MODULES | grep "expires"

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

  1. systemctl stop httpd.service
  2. cd /usr/local/httpd/conf
  3. mv httpd.conf httpd.conf.bak2
  4. yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
  5. cd /opt/httpd-2.4.29/
  6. ./configure \
  7. --prefix=/usr/local/httpd \
  8. --enable-so \
  9. --enable-rewrite \
  10. --enable-charset-lite \
  11. --enable-cgi \
  12. --enable-deflate
  13. --enable-expires #加入mod_expires 模块
  14. make && make install

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

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

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

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

Linux系统

windows系统,win10安装fiddler软件

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

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

4.1、修改配置文件

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

4.2、测试

五、Apache防盗链实验

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

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

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

  1. apachectl -t -D DUMP_MODULES | grep "rewrite"

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

  1. systemctl stop httpd.service
  2. cd /usr/local/httpd/conf
  3. mv httpd.conf httpd.conf.bak3
  4. yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
  5. cd /opt/httpd-2.4.29
  6. ./configure \
  7. --prefix=/usr/local/httpd \
  8. --enable-so \
  9. --enable-rewrite \ #加入mod_rewrite模块
  10. --enable-charset-lite \
  11. --enable-cgi \
  12. --enable-deflate \
  13. --enable-expires
  14. make && make install

5.3、配置mod_rewrite模块

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

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

  1. apachectl -t #验证配置文件的配置是否正确
  2. apachectl -t -D DUMP_MODULES | grep "rewrite" #检查mod_rewrite模块是否已安装
  3. deflate_module (shared) #已安装的正确结果
  4. 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. Redis的并发竞争问题,你用哪些方案来解决?

    Redis的并发竞争问题,主要是发生在并发写竞争. 考虑到redis没有像db中的sql语句,update val = val + 10 where ...,无法使用这种方式进行对数据的更新. 假如有 ...

  2. linux下的压缩命令 tar zip gunzip

    p.p1 { margin: 0; font: 12px Arial; color: rgba(5, 42, 136, 1) } p.p2 { margin: 0; font: 12px " ...

  3. IDEA部署了项目,其他页面可以正常访问,但访问tomcat的localhost:8080却出现404

    解决方案 点击Edit Configurations 点击右边的加号, 把目录放在你tomcat目录下的ROOT目录.之后就可以正常运行了

  4. linux学习之路第七天(搜索查找类指令详解)

    搜索查找类 1.find指令 find指令将从指定目录向下递归遍历其各个子目录,将满足条件的文件或者目录显示终端. ~基本语法 find [搜索范围] [选项] ~选项说明 应用案例 案例1 :按文件 ...

  5. fast-poster海报生成器v1.4.0,一分钟完成海报开发

    fast-poster海报生成器v1.4.0,一分钟完成海报开发 介绍 一个快速开发动态海报的工具 在线体验:https://poster.prodapi.cn/ v1.4.0 新特性 为了项目和团队 ...

  6. Redhat 6.9 升级SSH到OpenSSH_8.6p1完整文档

    这个文章是转载,原文连接在这个:https://www.cnblogs.com/xshrim/p/6472679.html 这个问题遇到过,下面可以解决 ----------------------- ...

  7. sscanf功能详解(转)

    #include <stdio.h> #include <stdlib.h> #include <string.h> static void sscanf_test ...

  8. SLAM的数学基础(1):什么是方差,有什么意义?

    小红班上有两组同学的数学考试分数为: 第一组:小红:100分,小明:60分,小宇:20分 第二组:小蓝:70分,小华:60分,小杰:50分 那么很容易算出,第一组的平均分是60分,第二组的平均分也是6 ...

  9. java并发编程基础——线程的创建

    一.基础概念 1.进程和线程 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程.(进程是资源分配的最小单位) 线程:同一类线程共享代码和数据 ...

  10. 痞子衡嵌入式:嵌入式MCU中通用的三重中断控制设计

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是嵌入式MCU中通用的三重中断控制设计. 我们知道在 MCU 裸机中程序代码之所以能完成多任务并行实时处理功能,其实主要是靠中断来调度的, ...