apache虚拟主机管理核心是单机多站托管,需按域名、端口或ip三种方式划分请求入口,配置中必须包含servername、documentroot、directory权限及日志路径,并通过分层配置文件(如httpd-vhosts.conf或sites-available)统一维护。

Apache 虚拟主机管理,核心是按需划分请求入口、隔离站点资源、统一维护权限与日志。不靠多台服务器,单机就能跑好几个网站,关键在于配置清晰、结构合理、权限明确。
虚拟主机类型选对才省事
Apache 支持三种主流方式,适用场景不同:
-
基于域名(最常用):同一 IP,靠
ServerName和ServerAlias区分,比如site1.com和site2.org都指向192.168.1.100,浏览器发请求时带 Host 头,Apache 自动路由。适合正式上线或本地开发测试。 -
基于端口(开发调试友好):不用改 DNS 或 hosts,直接用
:8000、:8080访问不同站点。需在主配置里加Listen 8000,再写<virtualhost></virtualhost>块。注意防火墙要放行对应端口。 -
基于 IP(少用):服务器有多个公网 IP 时可用,每个
<virtualhost></virtualhost>独占一个地址。普通云服务器一般只配一个弹性 IP,实际很少用。
配置文件怎么组织才好管
别把所有东西堆进 httpd.conf,推荐分层管理:
- 主配置
httpd.conf只做全局开关:确保Include conf/extra/httpd-vhosts.conf这行没被注释(去掉前面的#),并确认mod_rewrite、mod_ssl等模块已加载。 - 虚拟主机集中写在
conf/extra/httpd-vhosts.conf(若不存在可新建)。每个站点一个<virtualhost></virtualhost>块,结构干净,增删站点只需改这个文件。 - Linux 发行版(如 Ubuntu/Debian)常用
sites-available+sites-enabled模式:配置文件放/etc/apache2/sites-available/mysite.conf,再用a2ensite mysite.conf启用,软链接到sites-enabled,更易启停单个站点。
每个站点必须配齐这四样
缺一不可,否则访问会 403、404 或直接跳到默认站:
PHP中文网提供Apache 2.4.62 官方 tar.gz 源码包下载,通过源码编译安装,开发者能够灵活定制模块、优化性能并精准控制安装路径,满足多样化的业务需求。
-
ServerName:主域名,必须和用户实际输入一致(如blog.example.com); -
DocumentRoot:绝对路径,指向该站首页文件所在目录(如/var/www/blog/public); -
<directory></directory>权限块:里面写Require all granted(Apache 2.4+),否则拒绝访问; - 日志路径(可选但建议):
ErrorLog和CustomLog分开记录,排查问题不翻大海。
本地测试不用买域名
Windows 或 Linux 客户端,编辑 /etc/hosts(Win 是 C:\Windows\System32\drivers\etc\hosts),加几行:
127.0.0.1 site1.test 127.0.0.1 api.site1.test
保存后,浏览器直接输 http://site1.test 就能走你刚配的虚拟主机,无需 DNS 解析。
配完记得验证再重启:
apachectl configtest # 检查语法是否正确 systemctl restart apache2 # 或 apachectl restart
不复杂但容易忽略细节。










