Apache网页优化
Apache网页优化的概述:
在企业中,部署Apache后只采用默认的配置参数,会发网防很多题,换言之照时认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代,为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化的内容。
网页压缩
检查是否安装mod_deflate
模块:
1 apachectl -t -D DUMP_MODULES | grep "deflate"
如果没有安装mod deflate 模块,重新编译安装 Apache 添加 mod deflate 模块
1 systemctl stop httpd.service 2 cd /usr/local/httpd/conf 3 mv httpd.conf httpd.conf.bak 4 5 yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
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 14 make && make install
.配置 mod deflate 模块启用
1 vim /usr/local/httpd/conf/httpd.conf 2 --51行--修改 注释52行 3 Listen 192.168.208.40:80 4 # Listen 80 5 --105行--取消注释 6 LoadModule deflate module modules/mod deflate.so #开启mod deflate 模块 7 8 --197行--取消注释,修改 9 ServerName www . clj. com: 80 10 --末行添加-- 11 <IfModule mod_deflate.c> 12 AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/png #代表对什么样的内容启用gzip压缩 13 DeflateCompressionLevel 9 #代表压缩级别,范围为1~9 14 SetOutputFilter DEFLATE #代表启用deflate模块对本站点的输出进行gzip压缩 15 </IfModule>
检查安装情况,启动服务
1 apachect1 -t #验证配置文件的配置是否正确 2 apachectl -t -D DUMP_ MODULES | grep "deflate" #检查 mod deflate 模块是否已安装 3 deflate module (shared) #已安装的正确结果 4 systemctl start httpd.service
测试 mod_deflate 压缩是否生效
1 cd /usr/local/httpd/htdocs 2 先将0.0.jpg文件传到/usr/local/httpd/htdocs目录下 3 vim index.html 4 <html><body> 5 <hl>It works!It works!It works!It works!It works!It works! 6 <img src="0.0.jpg"/></body></html>
网页缓存
通过mod_expire模块配置Apache,使网页能在客户端浏览器缓存一段时间,以避免重复请求。
启用mod_expire模块后,会自动生成页面头部信息中的Expires标签和Cache-Control标签,客户端浏览器根据标签决定下次访问是在本地机器的缓存中获取页面,不需要向服务器再次发出请求,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的。
网页缓存的步骤
检查是否安装 mod_expires 模块
1 apachectl -t -D DUMP_MODULES | grep "expires"
如果没有安装mod_expires 模块,重新编译安装 Apache 添加 mod_expires模块
1 systemctl stop httpd.service #停止服务 2 3 cd /usr/local/httpd/conf/ #切换目录 4 mv httpd.conf httpd.conf.bak2 #进行备份 5 yum install -y gcc gcc-c++ pcre pcre-devel zlib-devel #安装相关程序 6 7 #安装mod_expires模块 8 ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-deflate --enable-expires 9 10 make -j4 && make install #重新编译安装
配置 mod_expires 模块启用
1 vim /usr/local/httpd/conf/httpd.conf #修改配置文件 2 3 ----52行修改----- 4 Listen 192.168.208.40:80 5 6 ----111行取消注释---- 7 LoadModule expires_module modules/mod_expires.so 8 9 ----199行取消注释并修改----- 10 ServerName www.xyc.com:80 11 12 ----末行添加----- 13 <IfModule mod_expires.c> 14 ExpiresActive On #打开网页缓存功能 15 ExpiresDefault "access plus 60 seconds" #设置缓存60秒 16 </IfModule>
检查安装情况,启动服务
1 apachectl -t #验证配置.文件的配置是否正确 2 apachectl -t -D DUMP_MODULES | grep "expires" #检查 mod_deflate 模块是否已安装 3 4 systemctl start httpd.service #开启服务
测试缓存是否生效
cat /usr/local/httpd/htdocs/index.html
方法一∶
在Linux系统中,打开火狐浏览器,右击点查看元素选择 网络 —> 选择 HTML、WS、其他
访问 http∶//192.168.208.40 ,双击200消息查看响应头中包含 Expires 项
方法二∶
在Windows系统中依次安装 Microsoft.NET4 和fiddler 软件,打开fiddler 软件选择 inspectors —> 选择 Headers
浏览器访问 http//192.168.208.40 ,双击200消息查看 Expires 项
Apache安全优化
隐藏版本信息
Apache的版本信息,透露了一定的漏洞信息,从而给网站带来安全隐患生产环境中要配置Apache隐藏版本信息
隐藏版本信息的步骤
1 vim /usr/local/httpd/conf/httpd.conf #修改此文件,修改内容如下 2 ------491行--取消注释------ 3 Include conf/extra/httpd-default.conf 4 5 vim /usr/local/httpd/conf/extra/httpd-default.conf #修改此文件,修改内容如下 6 ------55行--修改------ 7 ServerTokens Prod #将原本的 Full 改为 Prod,只显示名称,没有版本 8 #ServerTokens 表示 Server 回送给客户端的响应头域是否包含关于服务器 OS 类型和编译过的模块描述信息 9 10 systemctl restart httpd.service #重新启动服务
浏览器访问 http∶//192.168.208.40 ,双击200消息查看 Server 项
配置防盗链
- 防盗链是防止别人的网站代码里面盗用我们自己服务器上的图片、文件、视频等相关资源
- 如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力
- 作为网站的维护人员,要杜绝服务器的静态资源被其他网站盗用
配置防盗链的步骤
检查是否安装 mod rewrite 模块
1 apachectl -t -D DUMP_MODULES | grep "rewrite"
如果没有安装mod_rewrite 模块,重新编译安装 Apache 添加 mod_rewrite模块
1 systemctl stop httpd.service #停止服务 2 cd /usr/local/httpd/conf/ #切换目录 3 mv httpd.conf httpd.conf.bak3 #文件备份 4 yum install -y gcc gcc-c++ pcre pcre-devel zlib-devel #安装相关程序 5 6 cd /opt/httpd-2.4.29/ #切换目录 7 #添加 mod rewrite模块 8 ./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-deflate \
--enable-expires \
--enable-rewrite 9 make -j4 && make install #重新编译安装
配置 mod_rewrite 模块启用
1 vim /usr/local/httpd/conf/httpd.conf 2 LoadModule rewrite_module modules/mod_rewrite.so
1 使用本网站以外的网站域名 访问本站的图片文件时,显示 3.png 这个图片 2 Options Indexes FollowSymLinks 3 AllowOverride None 4 Require all granted 5 6 RewriteEngine On 7 RewriteCond %{HTTP_REFERER} !^http://clj.com/.*$ [NC] 8 RewriteCond %{HTTP_REFERER} !^http://clj.com$ [NC] 9 RewriteCond %{HTTP_REFERER} !^http://www.xyc.com/.*$ [NC] 10 RewriteCond %{HTTP_REFERER} !^http://www.xyc.com/$ [NC] 11 RewriteRule \.(jpg|jpeg|gif|png) 3.png
网页准备
Web源主机配置∶
1 cd /usr/local/httpd/htdocs 2 将1.jpg、2.jpg、3.png文件传到/usr/local/httpd/htdocs目录下 3 4 vim index.html 5 <html><body><h1>this is xyc.com!</hl> 6 <img src="1.jpg"/> 7 </body></html> 8 9 echo "192.168.208.40 www.xyc.com">> /etc/hosts 10 echo "192.168.208.100 www.dl.com" >>/etc/hosts
盗链网站主机∶
1 yum install -y httpd 2 cd /usr/local/httpd/htdocs #yum安装的httpd服务的默认路径为/var/www/html/ 3 vim index.html 4 <html><body><h1>this is benet.com!</h1> 5 <img src="http;//www.xyc.com/1.jpg"/> 6 </body></html> 7 8 echo "192.168.208.40 www.xyc.com" >> /etc/hosts 9 echo "192.168.208.100 www.dl.com" >> /etc/hosts
在盗图网站主机上进行浏览器验证 http:www.dl.com