一、Apache网页优化
Apache网页优化的概述: 在企业中,部署Apache后只采用默认的配置参数,会发网防很多题,换言之照时认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代 为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化的内容 1.1 网页压缩 启动网页压缩的步骤: 1)网页压缩的理论步骤 1.检查是否安装mod_deflate 模块: apachectl -t -D DUMP_MODULES | grep "deflate" 2.如果没有安装mod deflate 模块,重新编译安装 Apache 添加 mod deflate 模块 systemctl stop httpd.service cd /usr/local/httpd/conf mv httpd.conf httpd.conf.bak 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 #加入mod_deflate 模块 make &s make install 3.配置 mod deflate 模块启用 vim /usr/local/httpd/conf/httpd.conf --51行--修改 注释52行 Listen 192.198.80.10:80 # Listen 80 --105行--取消注释 LoadModule deflate module modules/mod deflate.so #开启mod deflate 模块 --197行--取消注释,修改 ServerName www . clj. 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> 4.检查安装情况,启动服务 apachect1 -t #验证配置文件的配置是否正确 apachectl_-t -D DUMP_ MODULES l grep "deflate" #检查 mod deflate 模块是否已安装 deflate module (shared) #已安装的正确结果 systemctl start httpd.service 5.测试 mod_deflate 压缩是否生效 cd /usr/local/httpd/htdocs 先将game.jpg文件传到/usr/local/httpd/htdocs目录下 vim index.html <html><body> <hl>It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works !</h1> <img src="game. jpg"/></body></html> 2)网页压缩的具体实操步骤(图文) 第一步:检查是否安装 mod_deflate 模块: 第二步:没有安装 mod_deflate 模块,重新编译安装Apache添加该模块 1) 关闭服务,然后对httpd文件进行备份后,安装相关程序 2) 重新编译安装Apache添加 mod_deflate 模块 3)重新编译安装 第三步:配置 mod_deflate模块 1)修改第51行,然后52行注释掉 2)修改105行和197行 3)末行添加配置 第四步:检查安装情况,启动服务 第五步:测试 mod_deflate 压缩是否生效 1. 拖入图片,然后编辑index.html文件 2)临时配置域名与IP地址的映射关系,然后在【火狐浏览器】中进行测试(网页内右键然后点击查看元素)
1.2 网页缓存 通过mod_expire模块配置Apache,使网页能在客户端浏览器缓存一段时间,以避免重复请求。 启用mod_expire模块后,会自动生成页面头部信息中的Expires标签和Cache-Control标签,客户端浏览器根据标签决定下次访问是在本地机器的缓存中获取页面,不需要向服务器再次发出请求,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的。 1)网页缓存 的理论步骤 1.检查是否安装 mod_expires 模块 apachectl -t -D DUMP_MODULES | grep "expires" 2.如果没有安装mod_expires 模块,重新编译安装 Apache 添加 mod_expires模块 systemctl stop httpd.service #停止服务 cd /usr/local/httpd/conf/ #切换目录 mv httpd.conf httpd.conf.bak2 #进行备份 yum install -y gcc gcc-c++ pcre pcre-devel zlib-devel #安装相关程序 #安装mod_expires模块 ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-deflate --enable-expires make -j4 && make install #重新编译安装 3.配置 mod_expires 模块启用 vim /usr/local/httpd/conf/httpd.conf #修改配置文件 ----52行修改----- Listen 192.168.80.77:80 ----111行取消注释---- LoadModule expires_module modules/mod_expires.so ----199行取消注释并修改----- ServerName www.clj.com:80 ----末行添加----- <IfModule mod_expires.c> ExpiresActive On #打开网页缓存功能 ExpiresDefault "access plus 60 seconds" #设置缓存60秒 </IfModule> 4.检查安装情况,启动服务 apachectl -t #验证配置.文件的配置是否正确 apachectl -t -D DUMP_MODULES | grep "expires" #检查 mod_deflate 模块是否已安装 systemctl start httpd.service #开启服务 5.测试缓存是否生效 cat /usr/local/httpd/htdocs/index.html 方法一∶ 在Linux系统中,打开火狐浏览器,右击点查看元素选择 网络 —> 选择 HTML、WS、其他 访问 http∶//192.168.80.10 ,双击200消息查看响应头中包含 Expires 项 方法二∶ 在Windows系统中依次安装 Microsoft.NET4 和fiddler 软件,打开fiddler 软件选择 inspectors —> 选择 Headers 浏览器访问 http//192.168.80.10 ,双击200消息查看 Expires 项 2)网页缓存 的具体实操步骤(图文) 第一步:检查是否安装 mod expires 模块 第二步:如果没有安装mod_expires 模块,重新编译安装 Apache 添加 mod_expires模块 1)安装相关程序 2)加载模块 3)重新编译安装 第三步:配置 mod_expires 模块启用 1)切换目录然后修改监听的IP地址 2)取消111行的注释 3)修改域名 4)末行添加配置 第四步:检查安装情况,启动服务 第五步:测试结果 1)进入网页,然后进行清理记录和刷新
2)查看缓存是否生效,如下图即可
二、Apache安全优化
2.1 隐藏版本信息 Apache的版本信息,透露了一定的漏洞信息,从而给网站带来安全隐患生产环境中要配置Apache隐藏版本信息 如下:
1)隐藏版本信息 的理论步骤 vim /usr/local/httpd/conf/httpd.conf #修改此文件,修改内容如下 ------491行--取消注释------ Include conf/extra/httpd-default.conf vim /usr/local/httpd/conf/extra/httpd-default.conf #修改此文件,修改内容如下 ------55行--修改------ ServerTokens Prod #将原本的 Full 改为 Prod,只显示名称,没有版本 #ServerTokens 表示 Server 回送给客户端的响应头域是否包含关于服务器 OS 类型和编译过的模块描述信息 systemctl restart httpd.service #重新启动服务 浏览器访问 http∶//192.168.80.77 ,双击200消息查看 Server 项 2)隐藏版本信息 的具体实操步骤(图文) 第一步:修改httpd.conf 文件,修改内容如下 第二步: 修改httpd-default.conf文件,修改内容如下 5.测试隐藏版本信息是否生效
2.2 配置防盗链 防盗链是防止别人的网站代码里面盗用我们自己服务器上的图片、文件、视频等相关资源 如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力 作为网站的维护人员,要杜绝服务器的静态资源被其他网站盗用 1)配置防盗链 的理论步骤 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.bak3 #文件备份 yum install -y gcc gcc-c++ pcre pcre-devel zlib-devel #安装相关程序 cd /opt/httpd-2.4.29/ #切换目录 #添加 mod rewrite模块 ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-deflate --enable-expires --enable-rewrite make -j4 && make install #重新编译安装 3.配置 mod_rewrite 模块启用 vim /usr/local/httpd/conf/httpd.conf LoadModule rewrite_module modules/mod_rewrite.so RewriteCond %{HTTP REFERER}!^http;//www.clj.com.s【NC】 的字段含义∶ "8{HTTP REFERER}"∶ 存放一个链接的 URL,表示从哪个链接访问所需的网页。 "!^∶ 表示不以后面的字符串开头。 "http;//www.clj.com"∶ 是本网站的路径,按整个字符串匹配。 .$"∶ 表示以任意字符结尾。 "【NC】 "∶ 表示不区分大小写字母。 RewriteRule ..(gifljpg|swf)$ http;//www.clj.com/error.pnq 的字段含义∶ ". "∶表示匹配一个字符。 "“∶ 表示匹配 0 到多个字符,与”.“合起来的意思是匹配 0 到多次前面的任意字符,如果是 1 到多次匹配可以用”+“表示。 “.“∶ 在这里的”“是转义符,”.“就代表符号”.“的意思。因为”.“在指令中是属于规则字符,有相应的含义,如果需要匹配, 需要在前面加个转义符””,其它规则字符如果需要匹配, 也做同样处理。 “(gifljpglswf)“∶ 表示匹配"gif”、“jpg”、“swf"任意一个,”$“表示结束。最后的规则是以”.gif”、”.jpg"、".swf"结尾,前面是1到多个字符的字符串,也就是匹配图片类型的文件。 "http∶/www.clj.com/error,pnq"∶ 表示转发到这个路径 。 整个配置的含义是 使用本网站以外的网站域名 访问本站的图片文件时,显示 3.png 这个图片。 Options Indexes FollowSymLinks AllowOverride None Require all granted RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://clj.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://clj.com$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.clj.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.clj.com/$ [NC] RewriteRule \.(jpg|jpeg|gif|png) 3.png 4.网页准备 Web源主机配置∶ cd /usr/local/httpd/htdocs 将1.jpg、3.jpg文件传到/usr/local/httpd/htdocs目录下 vim index.html <html><body><h1>this is clj.com!</hl> <img src="1.jpg"/> </body></html> echo "192.168.80.77 www.clj.com">> /etc/hosts echo "192.168.80.100 www.dl.com" >>/etc/hosts 盗链网站主机∶ yum install -y httpd cd /usr/local/httpd/htdocs #yum安装的httpd服务的默认路径为/var/www/html/ vim index.html <html><body><h1> this is dl.com! </h1> <img src="http;//www.nj.com/1.jpg"/> </body></html> echo "192.168.153.30 www.nj.com">> /etc/hosts echo "192.168.153.10 www.dl.com" >>/etc/hosts 5.在盗图网站主机上进行浏览器验证 http:www.dl.com 2)配置防盗链 的具体实操步骤(图文) 第一步:检查是否安装 mod rewrite 模块 第二步:如果没有安装mod_rewrite 模块,重新编译安装 Apache 添加 mod rewrite模块 1)停止服务,然后备份文件,进行yum安装程序 2)添加 mod rewrite模块 3)重新编译安装 第三步:配置 mod_rewrite 模块启用 1)修改/usr/local/httpd/conf/httpd.conf文件,取消157行注释 2)在224行的下面添加这些配置(在虚拟机上找的,这个做完忘截图) 第四步:盗链测试 1)在源主机上配置(这个截图错了,忘修改回去流程是这么个流程) 2)获取到源主机图片的src地址 3)在盗链主机上配置httpd相关配置 4)在盗链主机上配置临时域名解析 5)在盗链主机*问盗链主机网站地址(记得清理历史记录和缓存然后刷新网页)