Apache 网页优化 安全优化

Apache优化

在现网很多企业中,Apache就会部署成默认配置,会引出很多网站问题,但是现在网络十分发达,网络带宽越来越大,需要对Apache进行更一步优化,考虑当今需求,提升Apache的稳定性、安全性和可靠性。

常见优化内容

网页压缩
网页缓存
工作模式、参数优化
隐藏版本号
设置防盗链

网页优化

Apache网页压缩功能模块

mod_gzip 模块
mod_deflate 模块
两者均使用 gzip压缩算法,压缩原理类似
mod_deflate速度快,mod_gzip 压缩比高
mod_gzip 占用资源相对较高
对于高并发大流量的服务器,使用 mod_deflate 的多一些

Apache 1.X

没有自带网页压缩,可以使用第三方 mod_gzip 进行压缩

Apache 2.X

自带 mod_deflate 模块,取代 mod_gzip

gzip概述

Apache网页优化功能是使用gzip的算法进行对网页内容进行压缩后再传输给客户端浏览器进行解析

这样做可以降低网络传输的字节数,加快网页加载速度,节省流浪,完善用户体验,并且 gzip 与搜索引擎的抓取工具有着更好的关系

Apache编译安装

安装编译器和其他工具

[root@7CentOS apache]# yum -y install gcc gcc-c++ make pcre-devel expat-devel perl zlib-devel
……省略部分……
已安装:
  expat-devel.x86_64 0:2.1.0-11.el7           pcre-devel.x86_64 0:8.32-17.el7          
  zlib-devel.x86_64 0:1.2.7-18.el7           

更新完毕:
  perl.x86_64 4:5.16.3-295.el7                                                          

作为依赖被升级:
  expat.x86_64 0:2.1.0-11.el7             perl-libs.x86_64 4:5.16.3-295.el7            

完毕!

解压所需依赖

[root@7CentOS apache]# ls
apr-1.6.2.tar.gz  apr-util-1.6.0.tar.gz  httpd-2.4.25.tar.gz
[root@7CentOS apache]# tar zxvf apr-1.6.2.tar.gz
[root@7CentOS apache]# tar zxvf apr-util-1.6.0.tar.gz 
[root@7CentOS apache]# tar zxvf httpd-2.4.25.tar.gz
[root@7CentOS apache]# mv apr-1.6.2 httpd-2.4.25/srclib/apr
[root@7CentOS apache]# mv apr-util-1.6.0 httpd-2.4.25/srclib/apr-util

编译安装

[root@7CentOS httpd-2.4.25]# ./configure \
> --prefix=/usr/local/httpd \                     ##安装路径
> --enable-so \                                   ##核心功能模块
> --enable-rewrite \                              ##重写功能
> --enable-charset-lite \                         ##字符集
> --enable-cgi \                                  ##通用网关
> --enable-deflate \                              ##压缩模块
> --enable-expires                                ##缓存模块
……省略一堆……
[root@7CentOS httpd-2.4.25]# make && make install
……省略一堆……

网页压缩展示

编辑配置文件

[root@7CentOS httpd]# cd /usr/local/httpd/conf/
[root@7CentOS conf]# ls
extra  httpd.conf  magic  mime.types  original
[root@7CentOS conf]# vim httpd.conf 
下面这行去掉注释
LoadModule deflate_module modules/mod_deflate.so
添加如下行
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascrip text/jpg text/png
  DeflateCompressionLevel 9
  SetOutputFilter DEFLATE
</IfModule>
修改监听地址
 Listen 20.0.0.7:80
 #Listen 80

[root@7CentOS conf]# /usr/local/httpd/bin/apachectl -t
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe93:2c0b. Set the 'ServerName' directive globally to suppress this message
Syntax OK

编辑主页

[root@7CentOS conf]# cd /usr/local/httpd/htdocs/
[root@7CentOS htdocs]# ls
index.html
[root@7CentOS htdocs]# vim index.html 
<html><body><h1>This is Ora's CSDN.</h1></body></html>

关闭防护,开启服务

[root@7CentOS htdocs]# setenforce 0
[root@7CentOS htdocs]# iptables -
[root@7CentOS htdocs]# /usr/local/httpd/bin/apachectl start

在客户机安装如下软件及依赖

在这里插入图片描述

打开网页进行验证

在这里插入图片描述
在主页中增加一张图片进行验证
图片要和主页放在同一个文件夹
发现还是可以压缩的

[root@7CentOS htdocs]# vim index.html
<html><body><h1>This is Ora's CSDN.</h1>
<img src="bizhi.jpg" />
</body></html>

在这里插入图片描述
在这里插入图片描述

网页缓存

之前在上面我编译安装时,已经编译了 enable_expires ,所以不需要再重新编译

编辑配置文件

[root@7CentOS /]# vim /usr/local/httpd/conf/httpd.conf 
去点下面这行,行首 # ,开启模块
LoadModule expires_module modules/mod_expires.so   ##开启 缓存 模块
在任意位置手敲一下命令
<IfModule mod_expires.c>
 ExpiresActive On
 ExpriesDefault "access plus 60 seconds"
</IfModule>

重启服务,验证配置

[root@7CentOS /]# ./usr/local/httpd/bin/apachectl start
[root@7CentOS /]# setenforce 0
[root@7CentOS /]# iptables -F

网页可以正常访问,使用软件抓包查看
在这里插入图片描述在这里插入图片描述

再次修改配置文件,验证是否更改

[root@7CentOS /]# vim /usr/local/httpd/conf/httpd.conf 
<IfModule mod_expires.c>
 ExpiresActive On
 ExpiresDefault "access plus 150 seconds"     ##设置为 150 s
</IfModule>
[root@7CentOS /]# ./usr/local/httpd/bin/apachectl restart

在这里插入图片描述

网页安全优化

隐藏版本信息

Apache隐藏版本信息
为什么要隐藏版本信息?
因为Apache的版本信息相对的会透露出Apache的一些漏洞,这样会给网页带来一些安全隐患
所以在现网环境中,需要隐藏 Apahce的版本信息
在这里插入图片描述

开始隐藏配置

[root@7CentOS extra]# vim /usr/local/httpd/conf/httpd.conf 
Include conf/extra/httpd-default.conf
[root@7CentOS /]# cd /usr/local/httpd/conf/extra/
[root@7CentOS extra]# vim httpd-default.conf 
ServerTokens prod            ##原本时 Full
ServerSignature Off          ##保持不变
[root@7CentOS /]# ./usr/local/httpd/bin/apachectl restart

这样原本的版本信息就不会显示出来了
在这里插入图片描述

防盗链

防盗链是用来阻止别人盗取我们自己网页的文件之类的相关资源的
如果别人盗用我们的网页网站,将数据指向我们的服务,会增大我们服务器的压力
所以我们要设置防盗链
注:防盗链需要开启 rewrite模块

先做一个偷资源的主机

做一个网页,指向 自己服务器的 IP

[root@1centos ora]# vim index.html     ##另一台主机的www主页
<html><body><h1>No ora's web!</h1>
<img src="http://20.0.0.7/bizhi.jpg"/>
</body></html>

[root@1centos ora]# systemctl start httpd
[root@1centos ora]# setenforce 0
[root@1centos ora]# iptables -F

验证偷资源

可以看到这个图片是我们本机的图片在这里插入图片描述

在个人服务器上开启防盗

[root@7CentOS htdocs]# ls
½[??c?תa0??  bizhi.jpg  error.png  FD.jpg  index.html
[root@7CentOS htdocs]# vim /usr/local/httpd/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so    ##防盗
……省略……
    RewriteCond %{HTTP_REFERER} !^http://csdn.com/.*$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://csdn.com$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://www.csdn.com/.*$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://www.csdn.com$ [NC]
    RewriteRule .*\.(gif|jpg|swf)$ http://www.csdn.com/error.png
</Directory>

[root@7CentOS /]# ./usr/local/httpd/bin/apachectl restart 
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe93:2c0b. Set the 'ServerName' directive globally to suppress this message

再次验证

如果不登录正确网址,就是显示别的图片
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Ora_G/article/details/107840811