
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/hostsecho "192.168.172.10 www.lisi.com" >> /etc/hosts
- 注意:如果已经配置过Apache,需确保将主页文件改名,否则可能导致配置冲突。
- 在终端执行以下命令:
1.2 为虚拟主机准备网页文档
创建相应的文件目录并添加索引文件:
mkdir -p /var/www/html/zhangsanmkdir -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:80Listen 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 onMaxKeepAliveRequests 100KeepAliveTimeout 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/testecho "hello zhangsan
" > /var/www/html/test/index.htmlsystemctl 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/httpdssystemctl restart httpd
五、AWStats日志分析
5.1 安装AWStats
安装并配置AWStats:
cd /opttar zxvf awstats-7.6.tar.gzmv /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/awstatssystemctl start awstats
5.5 设置自动化更新
创建cron计划任务:
crontab -e*/5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now
5.6 访问AWStats站点
确保服务器防火墙配置允许访问:
systemctl stop firewalldsystemctl disable firewalldsetenforce 0
在/etc/hosts
中添加:
echo "192.168.172.10 www.zhangsan.com" >> /etc/hosts
访问AWStats站点:
http://www.zhangsan.com/awstats/awstats.pl
六、网页优化
在网页中添加自动跳转代码:
将其添加到z.html
文件中。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年03月26日 03时58分05秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Vue使用bus进行组件间、父子路由间通信
2019-03-05
数据库三个级别封锁协议
2019-03-05
类的实例
2019-03-05
tomcat加载部署webapps目录下的项目
2019-03-05
ACM/NCPC2016 C Card Hand Sorting(upc 3028)
2019-03-05
方法重写
2019-03-05
Threading Programming Guide(多线程编程指南)
2019-03-05
Java求逆波兰表达式的结果(栈)
2019-03-05
SDWebImage--http图片加载不出来的问题
2019-03-05
Application received signal SIGSEGV
2019-03-05
MySQL删除数据库时的错误(errno: 39)
2019-03-05
Win10 JDK配置环境变量以及为什么需要配置每部分的原因
2019-03-05
ubuntu学习笔记-常用文件、命令以及作用(hosts、vim、ssh)
2019-03-05
SLAM学习笔记-求解视觉SLAM问题
2019-03-05
target加载不出文件的原因之一
2019-03-05
普歌-允异团队-HashMap面试题
2019-03-05
还在一个一个手动安装虚拟机吗?Cobbler自动部署装机一键最小化安装打把游戏就好了
2019-03-05
Windows下Python安装与使用
2019-03-05
Font Awesome图标库使用
2019-03-05
程序员应该知道的97件事
2019-03-05