Apache配置与应用
发布日期:2021-05-08 02:26:54 浏览次数:19 分类:精选文章

本文共 4041 字,大约阅读时间需要 13 分钟。

Apache配置与应用指南

一、构建虚拟Web主机

虚拟Web主机是一种在同一台服务器上运行多个Web站点的技术,每个站点都共享同一IP地址。这种配置能够高效利用服务器资源,降低运维成本。

1.基于域名的虚拟主机

1.1 为虚拟主机提供域名解析

可以通过以下两种方法实现域名解析:

  • 方法一:部署DNS域名解析服务器

    • 安装并配置DNS服务器(如BIND或Dnsmasq)。
    • 在服务器的/etc/hosts文件中添加映射关系。
  • 方法二:临时配置域名与IP地址映射

    • 在终端执行以下命令:
      echo "192.168.172.10 www.zhangsan.com" >> /etc/hosts
      echo "192.168.172.10 www.lisi.com" >> /etc/hosts
    • 注意:如果已经配置过Apache,需确保将主页文件改名,否则可能导致配置冲突。

1.2 为虚拟主机准备网页文档

创建相应的文件目录并添加索引文件:

mkdir -p /var/www/html/zhangsan
mkdir -p /var/www/html/lisi
  • www.zhangsan.com创建主页:
    echo "

    www.zhangsan.com

    " > /var/www/html/zhangsan/index.html
  • www.lisi.com创建主页:
    echo "

    www.lisi.com

    " > /var/www/html/lisi/index.html

1.3 添加虚拟主机配置

编辑Apache的虚拟主机配置文件(httpd-vhosts.conf):

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

添加以下配置:

ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/var/www/html/zhangsan"
ServerName www.zhangsan.com
ErrorLog "logs/zhangsan.com-error_log"
CustomLog "logs/zhangsan.com-access_log" common
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/var/www/html/lisi"
ServerName www.lisi.com
ErrorLog "logs/lisi.com-error_log"
CustomLog "logs/lisi.com-access_log" common

1.4 设置访问控制

为每个虚拟主机目录设置访问权限:

Options None
AllowOverride None
Require all granted

2.基于IP地址的虚拟主机

2.1 确保多个IP地址

使用多个IP地址配置虚拟主机:

DocumentRoot "/var/www/html/zhangsan"
ServerName www.zhangsan.com
ErrorLog "logs/zhangsan.com-error_log"
CustomLog "logs/zhangsan.com-access_log" common
DocumentRoot "/var/www/html/lisi"
ServerName www.lisi.com
ErrorLog "logs/lisi.com-error_log"
CustomLog "logs/lisi.com-access_log" common

2.2 确保Apache监听多个IP地址

编辑Apache主配置文件(httpd.conf):

Listen 192.168.172.10.10:80
Listen 192.168.172.100.200:80

3.基于端口的虚拟主机

为每个站点分配不同的端口:

DocumentRoot "/var/www/html/zhangsan"
ServerName www.zhangsan.com
ErrorLog "logs/zhangsan.com-error_log"
CustomLog "logs/zhangsan.com-access_log" common
DocumentRoot "/var/www/html/lisi"
ServerName www.lisi.com
ErrorLog "logs/lisi.com-error_log"
CustomLog "logs/lisi.com-access_log" common

二、Apache连接保持

启用Apache的连接保持功能:

vim /usr/local/httpd/conf/extra/httpd-default.conf

取消注释并配置:

KeepAlive on
MaxKeepAliveRequests 100
KeepAliveTimeout 5

三、构建虚拟目录与用户授权

3.1 创建用户认证文件

使用htpasswd工具创建用户:

cd /usr/local/httpd/bin/
./htpasswd -c /usr/local/httpd/user zhangsan
./htpasswd /usr/local/httpd/user lisi

3.2 配置用户授权

httpd.conf中添加配置:

AuthName "Hello!"
AuthType Basic
AuthUserFile /usr/local/httpd/user
Require valid-user

3.3 测试访问权限

创建测试页面并重启Apache:

mkdir -p /var/www/html/test
echo "

hello zhangsan

" > /var/www/html/test/index.html
systemctl restart httpd

3.4 客户端访问

通过浏览器访问虚拟目录:

http://192.168.172.10:80/test

四、日志分割

使用rotatelogs工具分割日志:

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

创建日志目录并重启Apache:

mkdir -p /var/log/httpds
systemctl restart httpd

五、AWStats日志分析

5.1 安装AWStats

安装并配置AWStats:

cd /opt
tar zxvf awstats-7.6.tar.gz
mv /opt/awstats-7.6 /usr/local/awstats

5.2 配置AWStats

运行AWStats配置工具:

cd /usr/local/awstats/tools/
./awstats_configure.pl

输入主配置文件路径和站点名称。

5.3 加载CGI模块

httpd.conf中加载CGI模块:

LoadModule cgid_module modules/mod_cgid.so
LoadModule cgi_module modules/mod_cgi.so

5.4 创建AWStats配置文件

创建并编辑站点配置文件:

vim /etc/awstats/awstats.www.zhangsan.com.conf

设置日志文件路径和数据目录:

LogFile="/usr/local/httpd/logs/access_log"
DirData="/var/lib/awstats"

创建数据目录并重启AWStats:

mkdir -p /var/lib/awstats
systemctl start awstats

5.5 设置自动化更新

创建cron计划任务:

crontab -e
*/5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now

5.6 访问AWStats站点

确保服务器防火墙配置允许访问:

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

/etc/hosts中添加:

echo "192.168.172.10 www.zhangsan.com" >> /etc/hosts

访问AWStats站点:

http://www.zhangsan.com/awstats/awstats.pl

六、网页优化

在网页中添加自动跳转代码:

将其添加到z.html文件中。

上一篇:6.14编一个程序,将两个字符串s1和s2比较,不要用strcmp函数。
下一篇:6.13编一程序,将两个字符串连接起来,不要用strcat函数。

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年03月26日 03时58分05秒