Apache作为目前广泛使用的Web服务器软件,其强大的虚拟主机功能能够支持在同一台服务器上通过不同域名或端口托管多个网站,本文将以局域网环境为例,详细介绍如何通过配置Apache实现多端口多虚拟主机的搭建,涵盖环境准备、配置文件修改、虚拟主机设置及访问测试等关键步骤,帮助读者快速掌握相关技能。

环境准备与基础配置
在开始配置前,需确保系统已安装Apache服务器,以Ubuntu系统为例,可通过命令sudo apt update && sudo apt install apache2完成安装,安装后,默认Apache服务会运行在80端口,监听所有网络接口,为支持多端口访问,需检查Apache是否已加载mod_rewrite和mod_ssl模块(若涉及HTTPS),通过命令sudo a2enmod rewrite ssl启用必要模块,确保防火墙允许目标端口的访问,例如Ubuntu中使用sudo ufw allow 8080开放8080端口。
多端口监听配置
Apache的主配置文件/etc/apache2/ports.conf定义了服务器的监听端口,默认情况下,文件包含Listen 80指令,若需增加8080端口,可在文件中添加Listen 8080,确保指令位于<IfModule mod_ssl.c>块之外(避免SSL配置冲突),修改后保存文件,通过sudo systemctl restart apache2重启服务使配置生效,使用netstat -tlnp | grep :8080命令可验证端口是否成功监听。
虚拟主机文件创建
Apache的虚拟主机配置通常存储在/etc/apache2/sites-available/目录下,为每个虚拟主机创建独立的配置文件,例如site1.conf和site2.conf,每个虚拟主机文件需包含<VirtualHost>块,并通过端口指定监听的端口,以下为两个虚拟主机的示例配置:
site1.conf(监听80端口)

<VirtualHost *:80>
ServerName site1.local
DocumentRoot /var/www/site1
<Directory /var/www/site1>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/site1_error.log
CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
</VirtualHost>site2.conf(监听8080端口)
<VirtualHost *:8080>
ServerName site2.local
DocumentRoot /var/www/site2
<Directory /var/www/site2>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/site2_error.log
CustomLog ${APACHE_LOG_DIR}/site2_access.log combined
</VirtualHost>启用虚拟主机与目录权限
创建配置文件后,需使用sudo a2ensite site1.conf和sudo a2ensite site2.conf命令启用虚拟主机,这将自动创建软链接至/etc/apache2/sites-enabled/目录,随后,创建对应的网站根目录并设置权限:
sudo mkdir -p /var/www/site1 /var/www/site2 sudo chown -R $USER:$USER /var/www/site1 /var/www/site2 sudo chmod -R 755 /var/www/site1 /var/www/site2
在目录中创建测试文件(如index.html可分别设置为“Site 1 Test”和“Site 2 Test”以区分不同站点。
局域网访问测试
完成上述配置后,在局域网内其他设备上通过浏览器访问测试,假设服务器IP为168.1.100,则:

- 访问
http://192.168.1.100将显示site1的内容(80端口); - 访问
http://192.168.1.100:8080将显示site2的内容(8080端口)。
若使用域名访问,需在客户端的hosts文件中添加映射(如Windows的C:WindowsSystem32driversetchosts,Linux的/etc/hosts),添加内容如下:
168.1.100 site1.local
192.168.1.100 site2.local配置验证与故障排查
若访问失败,可通过以下步骤排查:
- 检查Apache错误日志:
tail -f /var/log/apache2/error.log; - 确认虚拟主机配置语法:
sudo apache2ctl configtest; - 验证端口是否被占用:
sudo lsof -i :8080; - 检查防火墙和SELinux(若启用)设置。
通过以上步骤,即可在局域网环境中成功搭建基于多端口的多虚拟主机服务器,实现不同站点的独立访问,这种配置方式适用于开发测试、内部服务部署等多种场景,灵活且易于扩展。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/46411.html
