
1. 基础概念部分1.1 Web 服务主流软件及开发语言Apache、Nginx、Tomcat 三大 Web 服务ApacheC/C 开发NginxC/C 开发TomcatJava 语言主打 Java 项目1.2 源码编译安装三部曲./configure 预编译检测系统开发环境、编译依赖、系统库、版本兼容可指定安装路径、开启模块功能最终生成 Makefile。make 编译编译器将源代码文本翻译成机器二进制码转为 CPU 可识别 0/1 指令耗时最长。make install 安装把编译好的二进制程序、配置、模块、帮助文件等拷贝到--prefix指定安装目录及子目录。1.3 Apache 源码安装位置判断安装目录/usr/local/httpd2467目录结构bin启动程序conf配置文件htdocs默认网站根目录logs日志目录modules模块目录cgi-bin脚本目录docs虚拟主机网站站点目录2. Apache 访问控制配置2.1 配置文件标准操作流程1.备份主配置文件cp -av ../../conf/httpd.conf /opt/备份文件名2.精简配置去掉空行、注释grep -Ev ^$|# 配置文件 精简后文件3.覆盖回主配置cat 精简文件 原httpd.conf4.手动加注释、保留核心配置具体需要修改的配置信息如下[rootlocalhost conf]# vim httpd.conf Directory /usr/local/httpd2467/htdocs Options Indexes FollowSymLinks AllowOverride None # by gaoxf 20260518 14:21 v1.1.1 begin # Require all granted Require ip 12.13.14.4 # by gaoxf 20260518 14:22 v1.1.1 end /Directory2.2 单一IP访问控制配置位置Directory 网站目录容器内允许单个 IPRequire ip 12.13.14.4禁止某个 IPRequire not ip 12.13.14.52.3 访问规则逻辑多个无not或关系满足任一即可访问有not也有普通 Require且关系全部满足才可访问2.4 配置检查与重启语法检测/usr/local/httpd2467/bin/apachectl -t重启服务/usr/local/httpd2467/bin/apachectl -k restart2.5 403报错原因目录权限 / 访问规则拒绝网站目录无默认首页 index.html3. Apache 基于域名虚拟主机配置核心重点3.1 前期准备1.服务器 IP12.13.14.4/242.本地域名解析 /etc/hosts格式IP 域名可多个域名绑定同一 IP# 例如 12.13.14.4 web1.gaoxf.com 12.13.14.4 web2.gaoxf.com3.Windows 端修改 hosts路径C:\Windows\System32\drivers\etc\hosts写入相同解析4.ping 测试能解析到对应 IP、有 TTL 返回即为正常3.2 虚拟主机配置文件路径如下/usr/local/httpd2467/conf/extra/httpd-vhosts.conf虚拟主机配置结构模板VirtualHost *:80 ServerAdmin 管理员邮箱 DocumentRoot 网站站点目录 ServerName 域名 ErrorLog 错误日志路径 CustomLog 访问日志路径 Directory 站点目录 Options FollowSymLinks AllowOverride All Require all granted /Directory /VirtualHost具体修改配置信息如下[rootlocalhost extra]# cat httpd-vhosts.conf VirtualHost *:80 ServerAdmin webmasterweb1.gaoxf.com DocumentRoot /usr/local/httpd2467/docs/web1.gaoxf.com ServerName web1.gaoxf.com # ServerAlias www.web1.gaoxf.com ErrorLog logs/web1.gaoxf.com-error_log CustomLog logs/web1.gaoxf.com-access_log common Directory /usr/local/httpd2467/docs/web1.gaoxf.com Options FollowSymLinks AllowOverride All Require all granted /Directory /VirtualHost VirtualHost *:80 ServerAdmin webmasterweb2.gaoxf.com DocumentRoot /usr/local/httpd2467/docs/web2.gaoxf.com ServerName web2.gaoxf.com ErrorLog logs/web2.gaoxf.com-error_log CustomLog logs/web2.gaoxf.com-access_log common Directory /usr/local/httpd2467/docs/web2.gaoxf.com Options FollowSymLinks AllowOverride All Require all granted /Directory /VirtualHost3.3 建站目录与权限1.批量创建站点目录mkdir -pv /usr/local/httpd2467/docs/web{1..2}.gaoxf.com2.授权运行用户 daemonchown -R daemon.daemon 站点目录3.编写各自默认首页 index.htmlecho h1web1.gaoxf.com/h1 /usr/local/httpd2467/docs/web1.gaoxf.com/index.html echo h1web2.gaoxf.com/h1 /usr/local/httpd2467/docs/web2.gaoxf.com/index.html3.4 主配置引入虚拟主机1.在httpd.conf主配置文件中加入include /usr/local/httpd2467/conf/extra/httpd-vhosts.conf2.并将之前修改的允许单个IP访问设置回允许所有IP访问3.5 测试与日志1.浏览器分别访问两个域名展示各自首页2.独立日志存放各自访问 / 错误日志web1.gaoxf.com访问日志信息tail -f /usr/local/httpd2467/logs/web1.gaoxf.com-access_logweb2.gaoxf.com访问日志信息tail -f /usr/local/httpd2467/logs/web2.gaoxf.com-access_log3.可扩展配置80 强制跳转 443 HTTPS、SSL 证书配置4.如何判断Apache源码安装位置1.用which/whereis找启动命令路径Apache的主程序叫httpd直接找它的位置which httpd # 输出示例/usr/local/httpd2467/bin/httpd whereis httpd # 输出示例httpd: /usr/local/httpd2467/bin/httpd /usr/local/httpd2467/conf/httpd.confhttpd 所在的上级目录bin 的父目录就是 Apache 的安装根目录。2.看进程启动参数ps aux | grep httpd # 输出里会有类似 root 1234 0.0 0.1 23456 7890 ? Ss 10:00 0:00 /usr/local/httpd2467/bin/httpd -k start这里的 /usr/local/httpd2467/bin/httpd也能直接看出安装根目录。3.找主配置文件 httpd.confApache 的核心配置文件 httpd.conf 里能看到所有路径信息# 查找配置文件位置 find / -name httpd.conf 2/dev/null# 常见路径 /usr/local/httpd2467/conf/httpd.conf /usr/local/apache2/conf/httpd.conf打开文件里面的 ServerRoot 就是安装根目录cat /usr/local/httpd2467/conf/httpd.conf | grep ServerRoot ServerRoot /usr/local/httpd2467这是 Apache 最核心的路径配置4.用 apachectl 工具查看最稳妥# 找到apachectl的位置 which apachectl # 输出/usr/local/httpd2467/bin/apachectl # 查看编译参数包含prefix/usr/local/httpd2467/bin/apachectl -V输出里的Server built with: ... --prefix/usr/local/httpd2467会直接告诉你安装路径。5.如何解决上处favicon.ico 404的问题1. 制作 favicon.ico 图标你可以用在线工具快速生成1.打开任意在线图标制作网站比如favicon.io或 比特虫图标制作工具在线制作ico图标 | 在线ico图标转换工具 方便制作favicon.ico - 比特虫 - Bitbug.net2.上传你准备好的图片推荐正方形比如 256x256px可在下面链接中找素材iconfont-阿里巴巴矢量图标库3.生成.ico格式文件下载到本地文件名保持为favicon.ico2. 上传到服务器的网站目录根据你的 Apache 虚拟主机配置找到web1.gaoxf.com的网站根目录。用 scp 或 xftp 把本地的 favicon.ico 上传到这个目录下。示例命令Linux 服务器本地终端执行# 假设你的服务器 IP 是 12.13.14.4网站根目录是 /usr/local/httpd2467/docs/web1.gaoxf.com/scp /本地路径/favicon.icoroot12.13.14.4:/usr/local/httpd2467/docs/web1.gaoxf.com/3. 给文件设置权限避免权限问题登录服务器给文件设置 Apache 能读取的权限# 进入网站根目录cd /usr/local/httpd2467/docs/web1.gaoxf.com/# 设置权限chmod 644 favicon.icochown apache:apache favicon.ico # 或你的 Apache 运行用户比如 www-data4. 验证是否生效1.清空浏览器缓存CtrlShiftR 强制刷新页面2.再次查看访问日志tail -f /usr/local/httpd2467/logs/web1.gaoxf.com-access_log3.正常情况下请求会变成12.13.14.4- - [18/May/2026:xx:xx:xx 0800] GET /favicon.ico HTTP/1.1 200 xxx状态码 200 表示请求成功404 就消失了。