Apache网页优化

1:网页压缩

网站访问速度影响因素:应用程序响应速度、网络带宽、服务器性能、与客户端之间网络传输速度等。其中最重要的是=一个因素是Apache本身,因此提升Apache执行速度(使用网页压缩)是性价比最高的选择。

(1)gzip介绍

一种流行的文件压缩算法,大约可以减少70%以上的文件大小。利用Apache的gzip模块可使用该算法对网页内容进行压缩后再传输给客户端浏览器,从而加快网页加载速度

(2)HTTP压缩过程

1.服务器接收到HTTP请求后,先检查浏览器是否支持压缩(Accept-Encoding信息)

2.如果支持,服务器将检查请求文件的后缀,如HTML,CSS等静态文件,服务器会在压缩缓存目录中查找是否存在最新的压缩文件

3.如果不存在最新压缩文件,服务器会返回未压缩的请求文件,并在缓存目录中存放该请求的压缩文件

4.如果存在新压缩文件,则直接返回请求的压缩文件

5.如果请求是动态文件,则服务器会动态压缩内容并返回浏览器,但内容不会存放到缓存目录中

(3)Apache的压缩模块

1.Apache 1.x系列没有内江网页压缩技术,使用的是第三方mod_gzip模块进行压缩

2.x系列内建了mod_deflate模块来取代mod_gzip

3.mod_gzip对服务器cpu占用更高,但压缩效率更高

2.查看浏览器支持哪些压缩

mod_deflate 模块

检查是否安装有 mod_deflate 模块

root@www \~# apachectl -t -D DUMP_MODULES | grep deflate

(1)安装时启用此功能

安装时编译 Apache 添加 mod_deflate 模块

root@apache \~# tar zxf httpd-2.4.25.tar.gz

root@apache \~# cd httpd-2.4.25/

root@apache ttpd-2.4.25#./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-deflate

root@apache httpd-2.4.25#make && make install

root@apache httpd-2.4.25#ln -s /usr/local/httpd/bin/* /usr/local/bin

root@localhost htdocs# vim /usr/local/httpd/conf/httpd.conf

LoadModule deflate_module modules/mod_deflate.so

<IfModule mod_deflate.c>

AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/png

DeflateCompressionLevel 9

SetOutputFilter DEFLATE

</IfModule>

(2)利用apxs为http扩展此功能

如果有apache的源码,可以重新编译并安装一次,新的模块就会添加进去,如果没有源码,或不想重新编译,可以使用apxs扩展此模块,方法如下

root@www \~# yum -y install zlib-devel

root@www \~# cd httpd-2.4.25/modules/filters/

root@www filters# /usr/local/httpd/bin/apxs -i -c -a mod_deflate.c

备注:

-i 安装

-c 编译指定模块

-a激活模块

(2)配置 mod_deflate 模块启用

root@apache\~# vim /usr/local/httpd/conf/httpd.conf

添加以下内容:

LoadFile /usr/lib64/libz.so

LoadModule deflate_module modules/mod_deflate.so

LoadFile /usr/lib64/libz.so

LoadModule deflate_module modules/mod_deflate.so

<IfModule mod_deflate.c>

AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/png

DeflateCompressionLevel 9

SetOutputFilter DEFLATE

</IfModule>

root@www httpd-2.4.25# httpd -t

root@www httpd-2.4.25# apachectl restart

root@localhost httpd-2.4.25# apachectl -t -D DUMP_MODULES | grep deflate

deflate_module (shared)

(3)测试 mod_deflate 压缩模块是否生效

访问网站:

http://192.168.10.101/test1.php

网页缓存

1:配置 mod_expires 模块启用

root@apache\~# vim /usr/local/httpd/conf/httpd.conf

LoadModule expires_module modules/mod_expires.so ##去掉前面的注释

<IfModule mod_expires.c>

ExpiresActive On

ExpiresDefault "access plus 60 seconds"

</IfModule>

备注:

ExpiresActive On:打开网页缓存功能

ExpiresDefault "access plus 60 seconds" :设置缓存60秒

2:检测 httpd.conf 语法

root@www \~# apachectl -t

3:重启 Apache 服务

root@www \~# apachectl restart

4:测试mod_expires 模块

访问网站:

http://192.168.10.101/test1.php

隐藏版本信息

1:修改主配置文件

root@www \~# vim /usr/local/httpd/conf/httpd.conf

去掉前面的注释符

Include conf/extra/httpd-default.conf

2:修改httpd-default.conf文件

root@www \~# vim /usr/local/httpd/conf/extra/httpd-default.conf

ServerTokens Prod

ServerTokens字段代表显示格式,各种格式如下:

Prod Server:Apache

Major Server:Apache/2

Minor Server:Apache/2.4

OS Server: Apache/2.4.25 (Unix)

Full Server: Apache/2.4.25 (Unix) PHP/4.2.2 MyMod/1.2

重启并测试

root@www \~# apachectl restart

查看响应头,Server字段只显示Apache,不再显示版本信息

Apache 防盗链

将第一台服务器直接克隆一个,并修改IP地址为192.168.10.201

3:修改两台服务器的主机名

(1)服务器1

root@www \~# hostnamectl set-hostname apache1

root@www \~# bash

(2)服务器2

root@www \~# hostnamectl set-hostname apache2

root@www \~# bash

(3)修改每个主机的hosts文件

192.168.10.101 www.benet.com

192.168.10.102 www.accp.com

4:编写带有图片的网页(原图网站)

将图片文logo.jpg件拷贝到apache的网站根目录下并修改网页文件

root@apache1 \~# vim /usr/local/httpd/htdocs/index.html

<html>

<body>

<h1>It work! </h1>

<img src="logo.jpg"/>

</body>

</html>

5:用另一台apache服务器盗链(盗图网站)

在 www.accp.com 服务器,修改 index.html 文件,加入盗取图片链接

root@apache2 \~# vim /usr/local/httpd/htdocs/index.html

<html>

<body>

<h1>dao lian </h1>

<img src="http://www.benet.com/logo.jpg" />

</body>

</html>

相关推荐
nvd112 天前
# 从 192 秒到 13 秒:Apache Flink 批处理极速调优实战记录
大数据·flink·apache
众链网络3 天前
景区票务系统选型的技术尽调清单:从并发、数据到二次开发的 12 个必查项
apache·景区票务系统
AllData公司负责人4 天前
AllData数据中台物联网实时平台|集成 Apache StreamPipes,MQTT工业物联网数据实时预警实践案例
大数据·数据库·人工智能·物联网·apache·工业物联网·streampipes
白帽攻防录5 天前
SRC 挖洞:Apache Tomcat 加密拦截器绕过深度复盘,CVE-2026-34486 fail-open 一行代码怎么打穿集群通信
java·网络安全·tomcat·apache
筑梦之路5 天前
Kafka KRaft 模式 Kubernetes 部署手册(StatefulSet + apache/kafka 官方镜像)——筑梦之路
kafka·kubernetes·apache
网络豆21 天前
Apache Maven 鸿蒙 PC 适配全记录:把 JVM 构建工具交付到 HiShell
maven·apache·harmonyos
网络豆21 天前
Apache Hive 鸿蒙 PC 适配全记录:以 Qt 客户端打通 HiveQL、监控与元数据访问
hive·apache·harmonyos
网络豆21 天前
Apache HBase 鸿蒙 PC 适配全记录:用 Qt 原生客户端打通 REST 管理与数据读写
apache·hbase·harmonyos
无巧不成书021822 天前
Apache Tomcat 9 下载全指南(Windows,Linux,macOS):版本选型、国内镜像、SHA-512 与 PGP 完整性校验
windows·tomcat·apache
Dream-Y.ocean22 天前
鸿蒙平台 Apache Tomcat 管理控制台适配实战:基于 Electron 壳方案的真实 HTTP 服务器实现
tomcat·apache·harmonyos