Apache网页优化与安全

Apache网页优化与安全

📒博客主页: [微笑的段嘉许博客主页]https://blog.csdn.net/weixin_72651014?spm=1000.2115.3001.5343)

💻微信公众号:微笑的段嘉许

🎉欢迎关注🔎点赞👍收藏⭐留言📝

📌本文由微笑的段嘉许原创!

📆CSDN首发时间:🌴2023年2月7日🌴

✉️坚持和努力一定能换来诗与远方!

🙏作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!

不要偷走我小火车哦~ ~ ~


📌导航小助手📌

本文介绍

​ Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。本篇博客主要讲解Apache的网页优化与安全,Apache的理论讲解与具体安装可以参考源代码配置安装Apache

详情介绍

​ Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

​ Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。

​ Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

​ Apache的诞生极富有戏剧性。当NCSAWWW服务器项目停顿后,那些使用NCSAWWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache。


📝实验配置与实验

拓扑图

image-20230206163408664

推荐步骤:

  • 在Centos01上安装apache配置网站,修改apache网站根目录/www/设置网站主页
  • 在Centos02上安装DNS使用域名访问Centos01上使用域名www.duanjiaxu.com访问,Centos03使用yum安装apache使用域名www.djx.com访问
  • 在Centos03上使用yum安装apache,设置网站主页访问完网站
  • www.duanjiaxu.com域名的网站配置压缩、网页缓存、隐藏Apache版本、
  • www.duanjiaxu.com网站配置防盗链防止www.djx.comwww.duanjiaxu.com的连接

实验步骤:

一、在Centos01上安装apache配置网站,修改apache网站根目录/www设置网站主页

1、在Centos01上安装apache

1)挂载系统光盘安装依赖程序

[root@centos01 httpd-2.2.17]# mount /dev/cdrom /mnt/		//挂载系统光盘

mount: /dev/sr0 写保护,将以只读方式挂载

[root@centos01 httpd-2.2.17]# ls /mnt/

CentOS_BuildTag  GPL    LiveOS   RPM-GPG-KEY-CentOS-7

EFI        images   Packages  RPM-GPG-KEY-CentOS-Testing-7

EULA       isolinux  repodata  TRANS.TBL

[root@centos01 ~]# rm -rf /etc/yum.repos.d/CentOS-*		//删除本地yum源

[root@centos01 ~]# yum -y install zlib zlib-devel			//安装依赖程序

2)从系统光盘切换到云计算光盘

image-20230206164229189

3)挂载云计算光盘

[root@centos03 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载

4)解压httpd程序到/usr/src

[root@centos03 ~]# tar zxf /mnt/httpd-2.2.17.tar.gz -C /usr/src/
[root@centos03 ~]# cd /usr/src/httpd-2.2.17/

5)编译安装

[root@centos01 httpd-2.2.17]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-deflate
[root@centos01 httpd-2.2.17]# make && make install

6)查看是否安装成功

[root@centos01 httpd-2.2.17]# ls /usr/local/
bin  etc  games  httpd  include  lib  lib64  libexec  sbin  share  src

7)生成服务控制文件

[root@centos01 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd		//生成服务控制文件
[root@centos01 ~]# chmod +x /etc/init.d/httpd 		//添加执行权限
[root@centos01 ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/		//优化命令

2、配置网站

1)设置apache服务开机自启

[root@centos01 ~]# vim /etc/init.d/httpd 		//进入apache服务控制文件
----
2 #chkconfig:35 80 21		//运行级 3,5 启动,启动优先权为80,停止优先权为21。
3 #description:Apache Server		//描述
---
[root@centos01 ~]# chkconfig --add httpd		//添加httpd服务
root@centos01 ~]# chkconfig --level 35 httpd on		//设置开机自启
[root@centos01 ~]# httpd -t		//检查配置文件修改是否有误
httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe25:91b5 for ServerName
Syntax OK

2)配置保持连接

[root@centos01 ~]# cp /usr/local/httpd/conf/httpd.conf /usr/local/httpd/conf/httpd.conf.bak		//备份主配置文件,防止修改错误原文件丢失
[root@centos01 ~]# vim /usr/local/httpd/conf/httpd.conf		//进入主配置文件
----
398 Include conf/extra/httpd-default.conf		//开启保持连接功能
----
[root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-default.conf 		//修改保持连接
Timeout 3		//超时时间
KeepAlive On		//保持连接默认开启
MaxKeepAliveRequests 1000		//最大连接并发量

image-20230206164517755

3)重新启动apache服务

[root@centos01 ~]# systemctl restart httpd

3、修改apache网站根目录/www设置网站主页

1)新建网站跟目录

[root@centos01 ~]# mkdir /www			
[root@centos01 ~]# echo "www.duanjiaxu.com" > /www/index.html
[root@centos01 httpd-2.2.17]# vim /usr/local/httpd/conf/httpd.conf
----
105 DocumentRoot "/www"			//修改网站根目录
133 <Directory "/www">		//授权网站根目录	
134     Options Indexes FollowSymLinks
135     AllowOverride None
136     Order allow,deny
137     Allow from all
138 </Directory>
[root@centos01 ~]# httpd -t		//检查主配置文件修改是否有误
httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe25:91b5 for ServerName
Syntax OK
[root@centos01 ~]# systemctl restart httpd		重新启动服务

image-20230206164645745

image-20230206164652097

2)配置IP地址和DNS

[root@centos01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32		//进入网卡配置文件
---
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.10		//IP地址
NETMASK=255.255.255.0		//子网掩码
DNS1=192.168.100.20		//DNS 
[root@centos01 ~]# systemctl restart network			//重新启动网卡服务	
[root@centos01 ~]# cat /etc/resolv.conf 		//查看DNS是否配置功能
# Generated by NetworkManager
nameserver 192.168.100.20

image-20230206164717251

3)使用win10虚拟机验证

image-20230206164731920

二、在Centos02上安装DNS使用域名访问Centos01上使用域名www.duanjiaxu.com访问,Centos03使用yum安装apache使用域名www.duanjiaxu.com访问

1、在Centos02上安装DNS

1)配置IP地址和DNS

[root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.20		//IP地址
NETMASK=255.255.255.0		//子网掩码
DNS1=192.168.100.20		//DNS
----
[root@centos02 ~]# systemctl restart network			//重新启动网卡服务
[root@centos02 ~]# cat /etc/resolv.conf 			//查看DNS是否配置成功
# Generated by NetworkManager
nameserver 192.168.100.20

image-20230206190153100

2、安装DNS服务

1)挂载系统光盘

[root@centos02 ~]# mount /dev/cdrom /mnt/		//挂载系统光盘
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos02 ~]# ls /mnt/			//查看系统光盘是否挂载成功
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL

2)安装DNS程序包

[root@centos02 ~]# rpm -ivh /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm 
警告:/mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:bind-32:9.9.4-50.el7             ################################# [100%]
[root@centos02 ~]# rpm -ivh /mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm 
警告:/mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:bind-chroot-32:9.9.4-50.el7      ################################# [100%]

3、修改DNS配置文件

1)修改DNS主配置文件

[root@centos02 ~]# echo "" > /etc/named.conf			//清空主配置文件
[root@centos02 ~]# vim /etc/named.conf				//进入主配置文件
---
options {
        listen-on port 53 { any; };
};
zone "duanjiaxu.com" IN {
        type master;
        file "var/named/duanjiaxu.com.zone";
};
zone "djx.com" IN {
        type master;
        file "var/named/djx.com.zone";
};

image-20230206190412463

2)修改第一个DNS区域配置文件

[root@centos02 ~]# vim /var/named/duanjiaxu.com.zone		//进入第一个区域配置文件
---
$TTL            86400
@               SOA             duanjiaxu.com.  root.duanjiaxu.com. (
                2023020510
                1H
                15M
                1D
)
@               NS              centos02.duanjiaxu.com.
centos02        A               192.168.100.20
www             A               192.168.100.10
---
[root@centos02 ~]# named-checkzone duanjiaxu.com /var/named/duanjiaxu.com.zone 		//查看区域配置文件语法是否有误
zone duanjiaxu.com/IN: loaded serial 2023020510
OK

image-20230206190439645

3)修改第二个DNS区域配置文件

[root@centos02 ~]# cp /var/named.duanjiaxu.com.zone /var/named.djx.com.zone			//复制第一个区域配置文件
[root@centos02 ~]# vim /var/named.djx.com.zone		//进入第二个区域配置文件
---
:%s/duanjiaxu.com/djx.com/g			//把duanjiaxu.com替换为djx.com
$TTL            86400
@               SOA             djx.com.        root.djx.com. (
                2023020510
                1H
                15M
                1W
                1D
)
@               NS              centos02.djx.com.
centos02        A               192.168.100.20
www             A               192.168.100.30		//IP地址修改为第二台apache服务器的IP地址

image-20230206190506115

image-20230206190527690

4)重新启动DNS服务

[root@centos02 ~]# systemctl restart named		//重新启动DNS服务
[root@centos02 ~]# netstat -anptu | grep named		//监听网卡
tcp        0      0 192.168.100.20:53       0.0.0.0:*               LISTEN      41066/named         
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      41066/named         
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      41066/named         
tcp6       0      0 ::1:953                 :::*                    LISTEN      41066/named         
udp        0      0 192.168.122.1:53        0.0.0.0:*                           41066/named         
udp        0      0 192.168.100.20:53       0.0.0.0:*                           41066/named         
udp        0      0 127.0.0.1:53            0.0.0.0:*                           41066/named  

5)使用win10虚拟机验证第一台apache服务器是否能够正常访问

image-20230206193657572

4、在Centos03上使用yum安装apache服务,使用域名www.djx.com访问

1)挂载系统光盘

[root@centos03 ~]# mount /dev/cdrom /mnt/		//挂载系统光盘
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos03 ~]# ls /mnt/			查看
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL
[root@centos03 ~]# rm -rf /etc/yum.repos.d/CentOS-*		//删除本地yum源
[root@centos03 ~]# cat /etc/yum.repos.d/local.repo 		//查看yum源
[local]
name=centos
baseurl=file:///mnt
enabled=1
gpgcheck=0

2)使用yum源安装apache服务

[root@centos03 ~]# yum -y install httpd			//安装apache服务
[root@centos03 ~]# systemctl start httpd		//启动apache服务
[root@centos03 ~]# systemctl enable httpd		//设置开机自启

5、修改apache网站根目录/www设置网站主页

1)新建网站根目录

[root@centos03 ~]# mkdir /www		//新建网站根目录
[root@centos03 ~]# echo "www.djx.com" > /www/index.html		//设置网站主页
[root@centos03 ~]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak			//备份主配置文件避免修改错误原文件丢失
[root@centos03 ~]# vim /etc/httpd/conf/httpd.conf			//进入主配置文件
---
119 DocumentRoot "/www"			//修改网站根目录
131 <Directory "/www">			//授权网站根目录
132     Options Indexes FollowSymLinks
133     AllowOverride None
134     Require all granted
135 </Directory>
---
[root@centos03 ~]# httpd -t			//检查主配置文件是否修改正确
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe38:619c. Set the 'ServerName' directive globally to suppress this message
Syntax OK
[root@centos03 ~]# systemctl restart httpd			//重新启动apache服务

2)配置IP地址和DNS

[root@centos03 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32		//进入网卡配置文件
---
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.30
NETMASK=255.255.255.0
DNS1=192.168.100.20
---
[root@centos03 ~]# systemctl restart network			//重新启动网卡服务
[root@centos03 ~]# cat /etc/resolv.conf 			//查看DNS是否生效
# Generated by NetworkManager
nameserver 192.168.100.20

3)使用win10虚拟机验证第二台apache服务是否能够正常访问

image-20230206191003998

三、在www.duanjiaxu.com域名的网站配置压缩、网页缓存、隐藏Apache版本

1、配置压缩

1)修改apache主配置文件配置压缩功能

[root@centos01 ~]# vim /usr/local/httpd/conf/httpd.conf			//进入apache主配置文件
---
391 AddOutputFilterByType DFLATE text/html text/plain text/css text/xml text/jav    ascript
392 DeflateCompressionLevel 9
393 SetOutputFilter DEFLATE
---
[root@centos01 ~]# httpd -t			//检查是否有误
httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe25:91b5 for ServerName
Syntax OK
[root@centos01 ~]# systemctl restart httpd			//重新启动apache服务
[root@centos01 ~]# netstat -anptu | grep httpd			//监听网卡
tcp6       0      0 :::80                   :::*                    LISTEN      109755/httpd  

2)使用win10虚拟机验证(安装一个Fiddler4)

image-20230206191350692

2、配置网页缓存

1)配置apache支持缓存功能

[root@centos01 ~]# cd /usr/src/httpd-2.2.17/			//进入apache源代码目录
[root@centos01 httpd-2.2.17]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-deflate --enable-expires			//安装网页缓存模块
[root@centos01 httpd-2.2.17]# make && make install			//编译安装

2)查看是否成功安装缓存功能

[root@centos01 ~]# httpd -l

image-20230206191511155

3)修改主配置文件开启缓存功能

[root@centos01 ~]# vim /usr/local/httpd/conf/httpd.conf			//进入主配置文件
---
394 <IfModule mod_expires.c>
395 ExpiresActive On			//开启缓存
396 ExpiresDefault "access plus 120 seconds"			//保存时间120秒
397 </IfModule>
---
[root@centos01 ~]# httpd -t			//检查主配置文件修改是否有误
httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe25:91b5 for ServerName
Syntax OK
---
[root@centos01 ~]# systemctl restart httpd			//重新启动httpd服务

4)使用win10虚拟机验证

image-20230206191552208

3、隐藏apache版本号

1)修改apache只配置文件保持连接

[root@centos01 ~]# vim /usr/local/httpd/conf/httpd.conf			//进入主配置文件
378 Include conf/extra/httpd-default.conf		//开启apache保持连接

image-20230206191735627

2)修改apache主配置文件隐藏apache版本号

[root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-default.conf 
---
10 Timeout 3			//超时时间3秒
16 KeepAlive On
23 MaxKeepAliveRequests 1000			//最大并发量
29 KeepAliveTimeout 3				//保存超时时间3秒
55 ServerTokens Prod			//
 65 ServerSignature Off			//隐藏版本号
[root@centos01 ~]# systemctl restart httpd			//重新启动apache服务	
[root@centos01 ~]# netstat -anptu | grep httpd			//监听网卡
tcp6       0      0 :::80                   :::*                    LISTEN      121600/httpd

3)使用win10虚拟机验证

image-20230206192113420

四、在www.duanjiaxu.com网站配置防盗,防止www.djx.com盗www.duanjiaxu.com的连接

1、切换到网站根目录上传图片

1)上传图片

[root@centos01 ~]# cd /www			//切换到网站根目录
[root@centos01 www]# rz				//上传图片
[root@centos01 www]# ls				//查看图片是否上传成功
03.jpg  index.html  Linux.jpg

image-20230206192255720

2)编辑网站主页

[root@centos01 www]# vim index.html		//进入网站主页目录
<html>
<body>
        <img src="./01.jpg"/>
</body>
</html>

3)使用win10虚拟机验证访问www.duanjiaxu.com查看是否能够正常访问到图片

image-20230206192345656

4)配置第二台apache服务器盗用第一台apache服务器的图片连接选择图片鼠标右键点击属性复制URL

image-20230206192451973

[root@centos03 ~]# ls /www			
index.html
[root@centos03 ~]# vim /www/index.html			//进入apache网站主页目录
---

<img src="http://www.duanjiaxu.com/01.JPG"/>
[root@centos03 ~]# systemctl restart httpd			//重新启动apache服务
[root@centos03 ~]# netstat -anptu | grep httpd			//监听网卡
tcp6       0      0 :::80                   :::*                    LISTEN      45902/httpd    

5)使用win10虚拟机验证

image-20230206192534441

2、配置防盗链

1)修改apache主配置文件配置防盗链

[root@centos01 ~]# vim /usr/local/httpd/conf/httpd.conf			//进入apache主配置文件
---
133 <Directory "/www">
134     Options Indexes FollowSymLinks
135     AllowOverride None
136     Order allow,deny
137     Allow from all
138     RewriteEngine On			//开启地址重新
139     RewriteCond %{HTTP_REFERER} !^$
140     RewriteCond %{HTTP_REFERER} !^http://duanjiaxu.com/.*$ [NC]
141     RewriteCond %{HTTP_REFERER} !127.0.0.1.*$ [NC]
142     RewriteCond %{HTTP_REFERER} !192.168.100.10.*$ [NC]
143     RewriteCond %{HTTP_REFERER} !^http://duanjiaxu.com$ [NC]
144   RewriteCond %{HTTP_REFERER} !^http://www.duanjiaxu.com/.*$ [NC]
145     RewriteCond %{HTTP_REFERER} !^http://www.duanjiaxu.com/$ [NC]
146     RewriteRule .*\.(gif|jpg|swf)$ http://www.duanjiaxu.com/04.png [R,NC,L]
147 </Directory>
---
[root@centos01 ~]# httpd -t				//检查配置文件修改是否有误
httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe25:91b5 for ServerName
Syntax OK
[root@centos01 ~]# /etc/init.d/httpd restart			//重新启动apache服务
httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe25:91b5 for ServerName
[root@centos01 ~]# netstat -anptu | grep httpd			//监听网卡
tcp6       0      0 :::80                   :::*                    LISTEN      123664/httpd    

image-20230206192626772

2)使用win10虚拟机访问www.djx.com验证

image-20230206192647961

3)使用抓包软件查看防盗链接过程

image-20230206192724165


🙏作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微笑的小许

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值