在 Apache HTTP Server 中配置多端口和多虚拟主机,可以通过编辑httpd.conf
文件或创建单独的配置文件来实现,以下是一个示例,展示如何在局域网中配置多个端口和虚拟主机。
假设我们有以下需求:
1、使用端口 80 和 8080 提供不同的虚拟主机。
2、在端口 80 上有两个虚拟主机:example1.local
和example2.local
。
3、在端口 8080 上有一个虚拟主机:example3.local
。
步骤一:编辑主配置文件
打开 Apache 的主配置文件httpd.conf
(通常位于/etc/httpd/conf/httpd.conf
或/etc/apache2/apache2.conf
)。
sudo nano /etc/httpd/conf/httpd.conf
确保以下行没有被注释掉:
Listen 80 Listen 8080
步骤二:创建虚拟主机配置文件
为每个虚拟主机创建一个单独的配置文件,在 CentOS/RHEL 系统中,可以在/etc/httpd/conf.d/
目录下创建这些文件。
虚拟主机 example1.local (端口 80)
创建文件/etc/httpd/conf.d/example1.local.conf
:
sudo nano /etc/httpd/conf.d/example1.local.conf
添加以下内容:
<VirtualHost *:80> ServerName example1.local DocumentRoot "/var/www/html/example1" <Directory "/var/www/html/example1"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>
虚拟主机 example2.local (端口 80)
创建文件/etc/httpd/conf.d/example2.local.conf
:
sudo nano /etc/httpd/conf.d/example2.local.conf
添加以下内容:
<VirtualHost *:80> ServerName example2.local DocumentRoot "/var/www/html/example2" <Directory "/var/www/html/example2"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>
虚拟主机 example3.local (端口 8080)
创建文件/etc/httpd/conf.d/example3.local.conf
:
sudo nano /etc/httpd/conf.d/example3.local.conf
添加以下内容:
<VirtualHost *:8080> ServerName example3.local DocumentRoot "/var/www/html/example3" <Directory "/var/www/html/example3"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>
步骤三:设置目录权限
确保每个虚拟主机的文档根目录存在并且具有正确的权限。
sudo mkdir p /var/www/html/example1 sudo mkdir p /var/www/html/example2 sudo mkdir p /var/www/html/example3 sudo chown R $USER:$USER /var/www/html/example1 sudo chown R $USER:$USER /var/www/html/example2 sudo chown R $USER:$USER /var/www/html/example3
步骤四:重启 Apache 服务
保存所有更改并重启 Apache 服务以应用新的配置:
sudo systemctl restart httpd # For CentOS/RHEL or sudo systemctl restart apache2 # For Debian/Ubuntu
步骤五:更新本地 hosts 文件
为了在局域网内访问这些虚拟主机,需要更新每台客户端机器上的hosts
文件,在 Linux 或 MacOS 上,可以编辑/etc/hosts
文件:
sudo nano /etc/hosts
添加以下行:
192、168.1.100 example1.local 192、168.1.100 example2.local 192、168.1.100 example3.local
请将192.168.1.100
替换为运行 Apache 服务器的实际 IP 地址。
完成以上步骤后,你应该能够在局域网内通过浏览器访问http://example1.local
、http://example2.local
和http://example3.local:8080
。