1、网页优化概述
在企业中,部署Apache后会有默认的配置参数,如果不及时进行优化配置,在当今互联网时代,会引发网站很多问题。
为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache的优化内容
2、优化内容
配置Apache的网页压缩功能,是使用gzip压缩算法来对网页内容进行压缩后在传输到客户端浏览器
1、作用
1、Apache实现网页压缩的功能模块包括
2、Apache 1.x
3、Apache 2.x
4、mod_gzip模块与mod_deflate模块
1、查看是否安装mod_deflate模块
2、修改配置文件,启用压缩功能
3、访问测试
1、将之前Apache的旧的配置文件进行移除或者改名
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak1
2、检查是否安装 mod_deflate 模块
apachectl -t -D DUMP_MODULES | grep "deflate"
3、如果没有安装mod_deflate模块,重新编译安装 Apache 添加mod_deflate 模块
#需要先将服务关闭
systemctl stop httpd.service
#使用该命令查看是否关闭成功
systemctl status httpd.service
yum -y install gcc gcc-c++ make 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 -j 2 && make install #编译安装
2是2核
4、配置 mod_deflate 模块 启用
vim /usr/local/httpd/conf/httpd.conf
-----52行修改------
Listen 192.168.200.50:80
----105行取消注释----
LoadModule deflate_module modules/mod_deflate.so
----197行取消注释,修改------
ServerName www.gcc.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>
apachectl -t #验证配置文件的配置是否正确
apachectl -t -D DUMP_MODULES | grep "deflate" #检查是否安装 mod_deflate 模块
deflate_module (shared) #出现该段,说明安装模块成功
6、添加网页内容,进行后续的测试
cd /usr/local/httpd/htdocs
#将自己想要测试的图片上传到该/htdocs目录下
vim /usr/local/httpd/htdocs/index.html
<html><body><h1>IU!IU!IU!</h1>
<img src='ceshitupian.png'/>
</body></html>
systemctl restart httpd.service
方法一:
在LInux系统中,打开火狐浏览器,右击点查看元素
选择 网络 ----> 选择 HTML、WS、其他
访问 http://192.168.182.11,多次刷新后查看响应头中包含 Content-Encoding; gzip
方法二:
在windows10 系统中依次安装 fiddler 软件,打开 fiddler软件
选择 inspectors -----> 选择 Headers
浏览器访问 http://192.168.182.11 ,多次刷新后查看 Content-Encoding; gzip
1、查看是否安装mod_expire模块
2、修改配置文件启用缓存功能
3、访问测试
1、检查是否安装 mod_ expires 模块
apachectl -t -D DUMP_MODULES | grep "expires"
2、如果没有安装mod_ expires 模块,重新编译安装Apache 添加mod_ expires 模块
systemctl stop httpd.service #关闭httpd服务
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、配置 mod_expires 模块启用
vim /usr/local/httpd/conf/httpd.conf
----52行修改------
Listen 192.168.182.11:80
----111行取消注释-----
LoadModule expires_module modules/mod_expires.so #开启mod_expires模块
----199行取消注释,修改------
ServerName www.panrj.com:80
-----末行添加---------
<IfModule mod_expires.c>
ExpiresActive On #打开网页缓存功能
ExpiresDefault "access plus 50 seconds" #设置缓存50秒
</IfModule>
4、检查安装情况,启动服务
apachectl -t #验证配置文件的配置是否正确
Syntax OK #出现该字段说明配置正确
apachectl -t -D DUMP_MODULES | grep "expires" #检查mod_expires 模块是否已安装
expires_module (shared) #出现该行说明安装成功
systemctl restart httpd.service
5、检测缓存是否生效
cat /usr/local/httpd/htdocs/index.html
方法一:
在LInux系统中,打开火狐浏览器,右击点查看元素
选择 网络 ----> 选择 HTML、WS、其他
访问 http://192.168.182.11,多次刷新后查看响应头中包含 Expires 项
方法二:
在windows10 系统中依次安装 fiddler 软件,打开 fiddler软件
选择 inspectors -----> 选择 Headers
浏览器访问 http://192.168.182.11 ,多次刷新后查看 Expires 项
1、盗链过程
这边需要在准备一台主机,作为盗链机
yum install -y httpd
vim /var/www/html/index.html
<html><body><h1>IT WORKS!</h1>
<img src="http://192.168.182.11/ceshiwenjian.png"/>
</body></html>
echo "192.168.182.11 www.panrj.com" >> /etc/hosts
echo "192.168.182.22 www.zhouyuzhu.com" >> /etc/hosts
systemctl restart httpd
然后就可以通过www.zhouyuzhu.com盗链到www.panrj.com的图片了。
为了防止这种情况发生,我们需要在服务器上设置防盗链配置
1、检查是否安装 mod_ rewrite 模块
apachectl -t -D DUMP_MODULES | grep "rewrite"
2、如果没有安装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 \ #加入mod_ rewrite 模块
--enable-charset-lite \
--enable-cgi \
--enable-deflate \
--enable-expires
make && make install
3、配置mod_rewrite模块启用
需提前在/usr/local/httpd/htdocs 中上传盗链警告的图片
vim /usr/local/httpd/conf/httpd.conf
vim /usr/local/httpd/conf/httpd.conf
----157行取消注释------
LoadModule rewrite_module modules/mod_rewrite.so
----249行下面添加-----
RewriteEngine On #打开 rewrite 功能,加入 mod_ rewrite 模块内容
RewriteCond %{
HTTP_REFERER} !^http://panrj.com/.*$ [NC] #设置匹配规则
RewriteCond %{
HTTP_REFERER} !^http://panrj.com$ [NC]
RewriteCond %{
HTTP_REFERER} !^http://www.panrj.com/.*$ [NC]
RewriteCond %{
HTTP_REFERER} !^http://www.panrj.com/$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://www.panrj.com/error.png #设置跳转动作
RewriteCond %{
HTTP_REFERER} !^http://www.panrj.com/.*$ [NC]的字段含义:
“%{
HTTP_REFERER}":存放一个链接的URL,表示从哪个链接访问所需的网页。
“!^”:表示不以后面的字符串开头。
"http://www.panrj.com”:是本网站的路径,按整个字符串匹配。
".*$":表示以任意字符结尾。
“[NC]”:表示不区分大小写字母。
RewriteRule .*\.(gif | jpg | swf)$ http://www.panrj.com/error.png的字段含义:
"."表示匹配一个字符。
"*"表示匹配0到多个字符,与“.” 合起来的意思是匹配0到多次前面的任意字符,如果是1到多次匹配可以用“+”表示。
"\.":在这里的“\”是转义符,“\.”就代表符号“.”的意思。因为“."在指令中是属于规则字符,有相应的含义,
如果需要匹配,需要在前面加个转义符“\”,其它规则字符如果需要匹配,也做同样处理。
“(gif | jpg | swf)" :表示匹配"gif”、“jpg”、“swf"任意 一个,“$”表示结束。最后的规则是以“.gif"、 “.jpg”、“.swf"结尾,前而是1到多个字符的字符串,也就是匹配图片类型的文件。
"http://www.panrj.com/error.png”:表示转发到这个路径。
整个配置的含义是使用本网站以外的网站域名访问本站的图片文件时,显示error.png 这个图片。
systemctl restart httpd.service #重启服务
此时如果再次使用盗链域名进行访问的话,就会出现预先设置的警告的图片。
(一)、配置Apache隐藏版本信息的必要性
(二)、隐藏版本信息步骤与命令
vim /usr/local/httpd/conf/httpd.conf
----491行取消注释-------
Include conf/extra/httpd-default.conf
vim /usr/local/httpd/conf/extra/httpd-default.conf
-----55行,将原本的 Full 改为 Prod,只显示名称,没有版本-------
ServerTokens Prod
#ServerTokens 表示 Server 回送给客户端的响应头域是否包含关于服务器 OS 类型和编译过的模块描述信息。
systemctl restart httpd.service