Apache 虚拟主机 不同端口号 配置(超简单教程)

  • 80 端口 → 网站 A
  • 8080 端口 → 网站 B
  • 8090 端口 → 网站 C

    完全独立,互不干扰。


一、核心原理

虚拟主机不只可以按域名区分,还可以按端口区分
plaintext
<VirtualHost *:端口号>
只要端口不一样,Apache 就会自动对应到不同网站。

二、3 步完成配置(Windows/Linux 通用)

第 1 步:让 Apache 监听新端口

打开 Apache 主配置文件 httpd.conf
添加你要使用的端口(默认只监听 80,必须手动加):
apache
# 默认端口
Listen 80

# 新增端口1
Listen 8080

# 新增端口2
Listen 8090
想加几个网站就加几个 Listen 端口。

第 2 步:配置不同端口的虚拟主机(核心)

打开虚拟主机配置文件:
  • Windows(XAMPP)conf/extra/httpd-vhosts.conf
  • Linux(CentOS)/etc/httpd/conf.d/vhost.conf
  • Linux(Ubuntu)/etc/apache2/sites-available/000-default.conf
直接复制下面配置(改路径即可):
apache
# 网站1:默认 80 端口
<VirtualHost *:80>
    DocumentRoot "D:/xampp/htdocs/site1"   # 你的网站1目录
    ServerName localhost:80
</VirtualHost>

# 网站2:8080 端口
<VirtualHost *:8080>
    DocumentRoot "D:/xampp/htdocs/site2"   # 你的网站2目录
    ServerName localhost:8080
</VirtualHost>

# 网站3:8090 端口
<VirtualHost *:8090>
    DocumentRoot "D:/xampp/htdocs/site3"   # 你的网站3目录
    ServerName localhost:8090
</VirtualHost>

必加权限配置(防止 403 错误)

每个虚拟主机建议加上目录权限:
apache
<Directory "D:/xampp/htdocs/site2">
    AllowOverride All
    Require all granted
</Directory>

第 3 步:重启 Apache

  • Windows:Stop → Start
  • Linux:systemctl restart httpdsystemctl restart apache2

三、测试访问

plaintext
http://localhost        → 网站1
http://localhost:8080   → 网站2
http://localhost:8090   → 网站3
能分别打开不同网站 = 配置成功 ✅

四、Linux 必须额外做一步(开放防火墙端口)

否则外部无法访问:
bash
运行
# CentOS 开放 8080、8090
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=8090/tcp
firewall-cmd --reload

# Ubuntu
ufw allow 8080
ufw allow 8090

五、最常见问题

  1. 新端口无法访问
    • 没加 Listen 端口号
    • 防火墙没开放
    • 云服务器安全组没放行
  2. 所有端口都打开同一个网站
    • 虚拟主机配置写错
    • 没有为每个端口单独写 <VirtualHost *:端口>
  3. 403 无权限
    • 缺少 <Directory> 权限配置

总结

  1. Listen 端口(告诉 Apache 要监听哪些端口)
  2. <VirtualHost *: 端口>(每个端口一个站点)
  3. 重启 Apache
  4. 防火墙放行端口
上一篇 dhcp dns httpd实验
下一篇 S9706集群子卡插在备用主板上亮红灯