网页优化
网页压缩 网页缓存
apache安全优化
配置防盗链
隐藏版本信息
1、配置网页压缩
网站随着用户访问量的增加和内容量的增加,网站的带宽会不断的增加,随之就是网站成本的增加。并且当内容量增大的时候,客户端如果带宽小,就会影响用户的体验。因此从这两方面考虑,网站的某些内容必须经过压缩之后再传给用户,然后在用户客户端进行解压,来实现双方共赢的效果。
apache 的压缩要用到mod_deflate模块,该模块提供了DEFLATE输出过滤器,允许服务器在将输出内容发送到客户端以前进行压缩,以节约带宽。它的核心思想就是把文件先在服务器进行压缩,然后再进行传输,这样可以显著减少文件传输的大小。当传输完毕后,客户端游览器会重新对压缩过的内容进行解压缩。如果没特殊情况的话,所有的文本内容都应该能被gzip压缩,例如:html(php),js,css,xml,txt等。特殊情况就是像一些首页上有很多广告投放的js代码,由于需要每次加载进而进行来访信息统计,所以这些广告代码拥有者网站的js不会经过gzip压缩
首先,mod_deflate模块检查及安装
/usr/local/httpd/bin/apachectl -M | grep deflate
如果出现以下结果:
deflate_module (static) #此种结果为DSO方式安装的
deflate_module (shared) #此种结果为编译安装方式安装的
编译安装 选择这种安装方法
这个用来添加模块的
cd /opt/httpd-2.4.37/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-cgid \
--enable-deflate
make && make install
vi /etc/httpd.conf
LoadModule deflate_module modules/mod_deflate.so 添加这一行
重启服务
systemctl restart httpd
apachectl -D DUMP_MODULES | grep deflate
vi /etc/httpd.conf
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript image/png image/jpeg application/x-httpd-php application/x-javascript
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
在末尾添加这些内容
注:
第一行代表对什么样类型的内容启用gzip压缩
第二行代表压缩级别9
第三行代表启用deflate模块对本站点的输出进行gzip压缩
apachectl -t
cd /usr/local/httpd/htdocs/
在这同级目录下添加b.jpg
-----测试页----
vi index.html
<html>
<head>
<title>--压缩测试页--</title>
</head>
<body><h1>这是一个测试网页内容压缩的页面!!This is test Page!!</h1>
<img src=b.jpg / >
</body>
</html>
如果网页出现中文乱码问题,解决方法如下
vi /etc/httpd.conf
AddDefaultCharset utf-8 //进入配置文件在最下面添加这一行
访问192.168.80.102
然后访问网页抓包查看
2、配置网页缓存时间
apachectl -D DUMP_MODULES | grep expires
service httpd stop
cd /opt/httpd-2.4.37/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-cgid \
--enable-deflate \
--enable-expires //增加缓存模块
make && make install
vi /etc/httpd.conf
LoadModule expires_module modules/mod_expires.so
apachectl -t
缓存的用法有3种,分别是对全局,对目录,对虚拟主机
apachectl -D DUMP_MODULES | grep expires
对全局:
对全局的配置就是在apache主配置文件/etc/httpd.conf的末尾加入如下参数即可
vi /etc/httpd.conf
末尾加入
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 60 seconds"
</IfModule>
//开启expires模块,并且对于http协议下任意格式的文档(html,css,js,图片等都是60秒后过期)
也可以指定格式类型的文件
ExpiresByType text/html "access plus 12 months"
ExpiresByType text/css "access plus 12 months"
ExpiresByType image/gif "access plus 12 months"
ExpiresByType image/jpeg "access plus12 12 months"
ExpiresByType image/jpg "access plus 12 months"
ExpiresByType image/png "access plus 12 months"
EXpiresByType application/x-shockwave-flash "access plus 12 months"
EXpiresByType application/x-javascript "access plus 12 months"
ExpiresByType video/x-flv "access plus 12 months"
service httpd start
b)对目录
c)对虚拟主机
对虚拟主机的配置就是在apache的虚拟主机配置文件httpd-vhost.conf中添加
service httpd restart
抓包测试:
3、配置防盗链
环境192.168.80.102 主机名zlf3 合法服务器
环境192.168.80.103 主机名zlf4 不合法服务器偷取图片的服务器,并用yum安装http服务
以上是在合法服务器上配置
vi /usr/local/httpd/htdocs/index.html
<html>
<title>I AM OK!</title>
<body>
<h1> Test Page! </h1>
<img src="b.jpg">
</body>
</html>
访问192.168.80.102
以下是在非法服务器上配置80.103上
先安装http服务
yum install -y httpd
vi /var/www/html/index.html
<html>
<title>i am thief</title>
<body>
<h1> hei! </h1>
<img src="http://www.aa.com/b.jpg">
</body>
</html>
systemctl restart httpd
访问: