
在网站托管中,虚拟主机允许单台服务器托管多个域名。Apache 是最广泛使用的Web服务器之一,提供了强大的虚拟主机功能。
在 RHEL 9 及基于 RHEL 的发行版(如 Fedora、Rocky Linux 和 AlmaLinux)上,设置和管理虚拟主机非常简单,尤其是启用/禁用选项,使得控制站点是否激活变得更加方便。
本文将介绍如何:
在 RHEL 9 上安装并配置 Apache。
为 example1.com 和 example2.com 创建虚拟主机。
根据需要启用或禁用虚拟主机。
步骤 1:安装 Apache Web 服务器
如果服务器上尚未安装 Apache,请使用以下命令安装:
sudo dnf install httpd -y
安装后,启动并允许Apache在系统启动时运行:
sudo systemctl start httpd
sudo systemctl enable httpd
第 2 步:配置 Apache 虚拟主机
为了保持井然有序,请创建目录来存储每个域的网站文件。Apache 通常将其用作/var/www/网站文件的默认位置。
sudo mkdir -p /var/www/example1.com/public_html
sudo mkdir -p /var/www/example2.com/public_html
为这些目录设置正确的所有权和权限:
sudo chown -R USER:USER /var/www/example1.com/public_html
sudo chown -R USER:USER /var/www/example2.com/public_html
sudo chmod -R 755 /var/www
为每个域创建一个简单的 HTML 文件来验证设置是否正常工作:
echo "<html><h1>欢迎来到 Example1.com</h1></html>" | sudo tee /var/www/example1.com/public_html/index.html
echo "<html><h1>欢迎来到 Example2.com</h1></html>" | sudo tee /var/www/example2.com/public_html/index.html
步骤3:创建虚拟主机配置文件
Apache 默认查找虚拟主机配置/etc/httpd/conf.d/,每个域都需要自己的配置文件。
创建虚拟主机文件example1.com:
sudo nano /etc/httpd/conf.d/example1.com.conf
添加以下配置:
<VirtualHost *:80>
ServerAdmin admin@example1.com
ServerName example1.com
ServerAlias www.example1.com
DocumentRoot /var/www/example1.com/public_html
ErrorLog /var/www/example1.com/error.log
CustomLog /var/www/example1.com/access.log combined
</VirtualHost>
创建虚拟主机文件example2.com:
sudo nano /etc/httpd/conf.d/example2.com.conf
添加以下配置:
<VirtualHost *:80>
ServerAdmin admin@example2.com
ServerName example2.com
ServerAlias www.example2.com
DocumentRoot /var/www/example2.com/public_html
ErrorLog /var/www/example2.com/error.log
CustomLog /var/www/example2.com/access.log combined
</VirtualHost>
如果您启用了防火墙,请确保允许HTTP流量:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
步骤4:启用和禁用虚拟主机
在RHEL上,您可以通过启用或禁用配置文件来管理虚拟主机。
启用虚拟主机
只需确保配置文件存在/etc/httpd/conf.d/ 并重新启动Apache:
sudo systemctl restart httpd
example1.com和example2.com现在均处于活动状态。
禁用虚拟主机
如果要暂时禁用虚拟主机,您可以重命名配置文件或将其移出/etc/httpd/conf.d/。
例如,禁用example2.com:
sudo mv /etc/httpd/conf.d/example2.com.conf /etc/httpd/conf.d/disabled_example2.com.conf
重新启动 Apache 以应用更改:
sudo systemctl restart httpd
要重新启用它,请将其移回原始位置:
sudo mv /etc/httpd/conf.d/disabled_example2.com.conf /etc/httpd/conf.d/example2.com.conf
sudo systemctl restart httpd
第 5 步:测试 Apache 虚拟主机
如果在本地测试,请将以下条目添加到/etc/hosts文件中:
127.0.0.1 example1.com
127.0.0.1 example2.com
打开 Web 浏览器并转到http://example1.com和http://example2.com。您应该会看到相应的欢迎消息。

您已成功在RHEL 9上为两个域和创建了Apache 虚拟主机,并可以根据需要启用或禁用每个主机。example1.comexample2.com,这个设置允许您的服务器独立管理多个网站,并让您控制哪些域处于活动状态。











