Apache练习

Posted 丁CCCCC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache练习相关的知识,希望对你有一定的参考价值。

练习

在这里插入图片描述

  • 服务器IP地址规划:client(Windows主机):18.0.0.18/24
  • 网关服务器:ens36:18.0.0.1/24、ens33:172.16.10.1/24
  • Web1:172.16.10.10/24,Web2:172.16.10.20/24
  • storage:172.16.10.88/24

一、准备工作

  • systemctl stop firewalld
  • systemctl disable firewalld
  • setenforce 0

1.1 设置虚拟机 vm1 vm2 网卡配置

  • vm1:172.16.10.0 网段
  • vm2:18.0.0.0 网段
    在这里插入图片描述
    在这里插入图片描述

1.2 web1

在这里插入图片描述

1.3 web2

在这里插入图片描述

1.4 网关服务器

网卡设置
在这里插入图片描述在这里插入图片描述

1.5 storage

添加四块硬盘
在这里插入图片描述

二、stroage服务器搭建nfs服务方便Web服务器使用,提供的共享空间使用raid5磁盘阵列模式,共享目录名称为sharetest

2.1 分区

使用 fdisk 对四个硬盘进行分区,硬盘类型 fd
在这里插入图片描述

2.2 创建 raid 5

  • mdadm -Cv /dev/md0 -l5 -n3 /dev/sd[bcd]1 -x1 /dev/sde1
  • cat /proc/mdstat
    • 查看安装进度

在这里插入图片描述

  • mkfs.xfs /dev/md0
    在这里插入图片描述

2.3 共享目录

  • mkdir -p /opt/sharetest
    在这里插入图片描述

  • vim /etc/exports

    • 编辑共享文件
      在这里插入图片描述
  • showmount -e

    • 查询共享的目录
      在这里插入图片描述

三、在Web2服务器上搭建Apache服务(注意配置时候参考第3题需求),创建两台基于不同的域名(www.accp.com /www.benet.com)的虚拟主机,站点目录使用stroage提供的共享空间,并且在两台虚拟主机上建立不同测试页面,内容自定

3.1 挂载 stroage 的共享目录

  • mkdir /share
    • 创建一个目录用于挂载
  • mount 172.16.10.88:/opt/sharetest /share

在这里插入图片描述

3.2 搭建Apache

Apache安装教程

3.3 创建基于域名的主机

# 在文件内配置临时域名
echo "172.16.10.20 www.accp.com" >> /etc/hosts
echo "172.16.10.20 www.benet.com" >> /etc/hosts

# 创建网页文档,根据题目要求需要在挂载的共享目录内创建
mkdir -p /share/www/html/accp
mkdir -p /share/www/html/benet

# 编辑网页内容
echo "<h1>hello accp" > /share/www/html/accp/index.html
echo "<h1>hello benet" > /share/www/html/benet/index.html

# 添加虚拟主机配置
 23 <VirtualHost 172.16.10.20:80>
 24 #    ServerAdmin webmaster@dummy-host.example.com
 25     DocumentRoot "/share/www/html/accp"
 26     ServerName www.accp.com
 27     ErrorLog "logs/accp.com-error_log"
 28     CustomLog "logs/accp.com-access_log" common
 29 </VirtualHost>
 30 
 31 <VirtualHost 172.16.10.20:80>
 32 #    ServerAdmin webmaster@dummy-host.example.com
 33     DocumentRoot "/share/www/html/benet"
 34     ServerName www.benet.com
 35     ErrorLog "logs/benet.com-error_log"
 36     CustomLog "logs/benet.com-access_log" common
 37 </VirtualHost>
 38  
 39 <Directory "/share/www/html"> 
 40         Options None
 41         AllowOverride None
 42         Require all granted
 43 </Directory>

# 主配置文件修改
482 Include conf/extra/httpd-vhosts.conf

# 重启服务
systemctl restart httpd

3.4 测试

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

四、对Web2服务器的Apache服务其中一个虚拟主机进行调优,要求能够压缩网页内容,隐藏版本号,根据日期进行日志分割每天生成一份日志文件,设置防盗链功能

4.1 压缩网页内容

# 关闭httpd
systemctl stop httpd

# 进入目录 
cd /usr/local/httpd/conf/

# 移动或删除原配置文件
mv httpd.conf httpd.conf.bak1

# 安装软件包
yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel

# 加入 mod_deflate 模块
cd /opt/httpd-2.4.29/
./configure \\
> --prefix=/usr/local/httpd \\
> --enable-so \\
> --enable-rewrite \\
> --enable-charset-lite \\
> --enable-cgi \\
> --enable-deflate

# 编译解码
make -j2 && make install

# 修改配置文件
vim /usr/local/httpd/conf/httpd.conf

# 以下内容均为解注释或修改
 51 Listen 172.16.10.20:80
105 LoadModule deflate_module modules/mod_deflate.so
197 ServerName www.cc001.com:80

# 末行添加
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/ javascript text/jpg text/png
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
</IfModule>

# 检查内容
apachectl -t

编译网页内容

<html>
<body>
<h1>
hello accp!
</h1>
<img src="111.jpg"/>
</body>
</html>

在这里插入图片描述

测试
在这里插入图片描述

4.2 隐藏版本号

# 进入配置文件,取消注释
vim /usr/local/httpd/conf/httpd.conf
490 Include conf/extra/httpd-default.conf	

# Full 改为 Prod 只显示名称
vim /usr/local/httpd/conf/extra/httpd-default.conf
55 ServerTokens Prod	

测试

systemctl restart httpd
在这里插入图片描述

4.3 分割日志

# 主配置文件
vim /usr/local/httpd/conf/httpd.conf

# 修改
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400"
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/access_%Y%m%d.log 86400" combined

# 修改文件
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

<VirtualHost 172.16.10.20:80>
    DocumentRoot "/share/www/html/accp"
    ServerName www.accp.com
    ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/benet.com-error_%F.log 86400"
    CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/benet.com-access_%F.log 86400" combined
</VirtualHost>
# 创建分够后的日志保存目录
mkdir /var/log/httpd 

# 重启服务
systemctl restart httpd 

4.4 设置防盗链

软件配置

# 安装软件包
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 \\
> --enable-rewrite

make -j2 && make install

# 设置主配置文件
vim /usr/local/httpd/conf/httpd.conf

157 LoadModule rewrite_module modules/mod_rewrite.so

<Directory "/share/www/html/accp">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://accp.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://accp.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.accp.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.accp.com/$ [NC]
RewriteRule .*\\.(gif|jpg|swf)$ http://www.accp.com/111.png
</Directory>

web主机配置

根据题目要求,文件放置在共享目录内

# 进入共享目录
cd /share/www/html/accp

# 编辑网页内容
<h1>www.accp.com</h1>
<img src="111.jpg"/>

# 放置网页图片以及防盗链图片
ls
111.jpg  111.png  index.html

# 设置域名解析
echo "172.16.10.20 www.accp.com" >> /etc/hosts
echo "172.16.10.20 www.benet.com" >> /etc/hosts

盗链机设置

# 进入目录
cd /usr/local/httpd/htdocs/

# 编辑网页内容
<html>
<body>
<h1>
?????????????????????????????web11111111111
</h1>
<img src="http://www.accp.com/111.jpg"/>
</body>
</html>

测试

在这里插入图片描述

五、在Web1服务器上搭建LAMP服务,并且能够对外提供Discuz论坛服务

5.1 搭建服务

LAMP构建请移步此博客

在这里插入图片描述

5.2 完成图

在这里插入图片描述

六、在网关服务器搭建DNS服务,使外网的client访问域名www.kgc.com解析为18.0.0.1,并且能够使用域名直接访问Web1服务器的网站

6.1 设置网关服务器

# 永久打开snat
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1

# 读取修改后的配置
sysctl -p
net.ipv4.ip_forward = 1

根据ip分别设置完后,web2和pc间能互相ping通
在这里插入图片描述

6.2 安装DNS解析

使用一键部署DNS完成安装

在这里插入图片描述

6.3 设置Dnat

# 发布内网的web服务
iptables -t nat -A PREROUTING -i ens37 -d 18.0.0.1 -p tcp --dport 80 -j DNAT --to 172.16.10.10

6.4 测试

在这里插入图片描述

七、对Web1服务器使用AWStats 分析系统来完成自动化的日志统计与分析工作,要求能够通过访问http://www.ccc.com/aws.html来展现统计效果

7.1 安装awstats

# 解压缩
tar zxvf awstats-7.6.tar.gz

# 移动
mv /opt/awstats-7.6 /usr/local/awstats

# 建立配置文件
cd /usr/local/awstats/tools/
./awstats_configure.pl
> /usr/local/httpd/conf/httpd.conf 
> > www.ccc.com

# 修改访问权限
vim /usr/local/httpd/conf/httpd.conf
276 ErrorLog "logs/error_log"
277 CustomLog "logs/access_log" combined

## 143行
<IfModule !mpm_prefork_module>
	LoadModule cgid_module modules/mod_cgid.so
</IfModule>
<IfModule mpm_prefork_module>
	LoadModule cgi_module modules/mod_cgi.so
</IfModule>

## 末行
<Directory "/usr/local/awstats/wwwroot">
    Options None
    AllowOverride None
    #Order allow,deny			#注释掉					
    #Allow from all				#注释掉
    Require all granted			#添加
</Directory>

# 修改站点统计文件
vim /etc/awstats/awstats.www.cc01.com.conf
LogFile="/usr/local/httpd/logs/access_log"
DirData="/var/lib/awstats"	

7.2 执行日志分析

# 创建目录
mkdir /var/lib/awstats

# 重启httpd
systemctl restart httpd

# 进入目录
cd /usr/local/awstats/tools/

# 更新数据
./awstats_updateall.pl now

# 自动任务
crontab -e
 */5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now

# 开启服务
systemctl start crond

7.3 分析系统站点

# 导入解析
echo “172.16.10.10 www.ccc.com” >> /etc/hosts

# 访问
http://www.ccc.com/awstats/awstats.pl?config=www.ccc.com

在这里插入图片描述

7.4 优化网址

# 编辑文件
vim /usr/local/httpd/htdocs/aws.html
<html>
<head>
<meta http-equiv=refresh content="0;url=http://www.ccc.com/awstats/awstats.pl?config=www.ccc.com">
</head>
<body></body>
</html>

访问
http://www.ccc.com/aws.html

在这里插入图片描述

以上是关于Apache练习的主要内容,如果未能解决你的问题,请参考以下文章

环境初始化 Build and Install the Apache Thrift IDL Compiler Install the Platform Development Tools(代码片段

csharp Epicor标准练习片段

golang 去练习片段

spark关于join后有重复列的问题(org.apache.spark.sql.AnalysisException: Reference '*' is ambiguous)(代码片段

selenium代码练习(ApachePOI)

spark集成hbase与hive数据转换与代码练习