Apache网页优化与安全(一)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
.cn 域名,1个 12个月
简介: 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。


📝实验配置与实验


拓扑图:

a27d9e30fd994d7a03e984c4306bb63.png


推荐步骤:

在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.com盗www.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)从系统光盘切换到云计算光盘

17f39710685aa9e21e98b8522bc21ed.png


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   //最大连接并发量

7f81f61ac0085e1a4ac287e73373824.png


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    重新启动服务

0ecc5e2fdecbad92880d68ae55619e8.png95b71b6260fe833fa50329c633f50c0.png


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

fd379e7228ce14515a2af503d4e9685.png


3)使用win10虚拟机验证

606c842e416ec70a8e80c7e686d719d.png



二、在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

59c6ecfab15d698bb01bf40665b60f0.png


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";
};

e2711b26c7b68789a0877c7af730dfc.png


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

fecd85cd629de25b30acbd98eceac1b.png


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地址

3cd2fd6ac1ef86f5b7b3381be5c9364.png03b387c2d14840c17cfa598f5031a97.png


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服务器是否能够正常访问

6326ff1b43e7bc5b358ee5bb9aafc90.png

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服务是否能够正常访问a0ae615df3bde24e4db86a2a22acbdf.png

相关文章
|
6月前
|
存储 监控 安全
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
为了提供更好的日志数据服务,360 企业安全浏览器设计了统一运维管理平台,并引入 Apache Doris 替代了 Elasticsearch,实现日志检索与报表分析架构的统一,同时依赖 Doris 优异性能,聚合分析效率呈数量级提升、存储成本下降 60%....为日志数据的可视化和价值发挥提供了坚实的基础。
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
|
6月前
|
SQL 存储 JSON
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
亲爱的社区小伙伴们,Apache Doris 2.1.0 版本已于 2024 年 3 月 8 日正式发布,新版本开箱盲测性能大幅优化,在复杂查询性能方面提升100%,新增Arrow Flight接口加速数据读取千倍,支持半结构化数据类型与分析函数。异步多表物化视图优化查询并助力仓库分层建模。引入自增列、自动分区等存储优化,提升实时写入效率。Workload Group 资源隔离强化及运行时监控功能升级,保障多负载场景下的稳定性。新版本已经上线,欢迎大家下载使用!
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
|
缓存 安全 Linux
百度搜索:蓝易云【Apache安装与优化教程。】
通过以上步骤,你已经成功安装和优化了Apache服务器。你可以根据自己的需求进行进一步的配置和调整,以满足你的网站的性能和安全需求。
249 2
|
18天前
|
消息中间件 监控 大数据
优化Apache Kafka性能:最佳实践与调优策略
【10月更文挑战第24天】作为一名已经对Apache Kafka有所了解并有实际使用经验的开发者,我深知在大数据处理和实时数据流传输中,Kafka的重要性不言而喻。然而,在面对日益增长的数据量和业务需求时,如何保证系统的高性能和稳定性成为了摆在我们面前的一个挑战。本文将从我的个人视角出发,分享一些关于如何通过合理的配置和调优来提高Kafka性能的经验和建议。
49 4
|
1月前
|
SQL 分布式计算 NoSQL
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
28 1
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
|
1月前
|
存储 大数据 分布式数据库
大数据-165 Apache Kylin Cube优化 案例 2 定义衍生维度及对比 & 聚合组 & RowKeys
大数据-165 Apache Kylin Cube优化 案例 2 定义衍生维度及对比 & 聚合组 & RowKeys
33 1
|
1月前
|
SQL 存储 监控
大数据-161 Apache Kylin 构建Cube 按照日期、区域、产品、渠道 与 Cube 优化
大数据-161 Apache Kylin 构建Cube 按照日期、区域、产品、渠道 与 Cube 优化
49 0
|
2月前
|
Linux Apache 数据安全/隐私保护
kali向Apache上部署网页
kali向Apache上部署网页
98 5
|
3月前
|
监控 安全 网络安全
如何保护 Apache 服务器的安全
【8月更文挑战第23天】
83 0
|
3月前
|
监控 Apache
Apache 工作模式的区别及优化
【8月更文挑战第22天】Apache 工作模式的区别及优化
74 0

推荐镜像

更多