的目的 Apache 虚拟主机是在一台机器上运行多个网站。 它可以是基于 IP 的或基于名称的。
- 基于 IP 的虚拟主机根据 IP 地址设置不同的指令。 因此,每个主机都需要一个单独的 IP 地址,并且通常用于在不同的端口和接口上托管网站。
- 基于名称的虚拟主机允许您托管多个具有相同 IP 地址的网站,因为服务器依赖于客户端以 HTTP 标头的形式报告主机名。
先决条件
- Apache HTTP Server 安装在 Ubuntu 20.04 机器上。
(了解如何安装 Apache Ubuntu 上的 HTTP 服务器) - 至少两个域名来测试虚拟主机
- 有 sudo 或root权限
为您的网站创建目录结构
在本教程中,我们使用域 example1.com
和 example2.com
展示 Apache 虚拟主机。
我们将首先为这两个网站创建目录 /var/www
,执行以下 mkdir
命令与 sudo
:
sudo mkdir -p /var/www/example1.com/public_html sudo mkdir -p /var/www/example2.com/public_html
在这些目录中,有一个 public_html
目录,我们将在其中保存我们的网站文件。
由于我们在帮助下创建了这些目录 sudo 命令,它们当前由 root 用户拥有。 要授予他们权限,请执行以下操作 chown 命令与 sudo:
sudo chown -R $USER:$USER /var/www/example1.com/public_html sudo chown -R $USER:$USER /var/www/example2.com/public_html
现在我们将添加一个 index.html
在我们的文件中包含以下脚本 public_html
这两个网站的目录,这将有助于我们稍后测试我们的 Apache 虚拟主机。 为此,请使用您最喜欢的编辑器。
nano /var/www/example1.com/public_html/index.html
然后复制粘贴以下 HTML(这是设置页面标题并添加两个标题的基本 HTML 代码)
<html> <head> <title>Welcome to example1.com!</title> </head> <body> <center> <h3>Congratulations! You've have successfully reached </h3> <h2>example1.com</h2> </center> </body> </html>
同样,对其他域名执行此操作。
创造 Apache 虚拟主机文件
我们需要为每个域名创建虚拟主机文件。 使用 cp 命令复制每个域名的默认配置。
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example1.com.conf
对于我们的第二个域名,
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example2.com.conf
现在使用您最喜欢的文本编辑器来编辑这些配置文件。 对于第一个域名,
sudo nano /etc/apache2/sites-available/example1.com.conf
Enter 管理员电子邮件 ServerAdmin
,以及该域名的网站根目录位置 DocumentRoot
.
略低于 DocumentRoot
, 为 ServerName
持有您的域名,以及 ServerAlias
为您的域名保留别名(如 www),如上图所示。
同样,为其他域执行此操作。
sudo nano /etc/apache2/sites-available/example2.com.conf
更新配置以启用虚拟主机
现在要启用我们的虚拟主机,我们将使用 a2ensite
公用事业。 执行以下命令以启用网站:
sudo a2ensite example1.com
同样,对于另一个域名:
sudo a2ensite example2.com
我们都准备重新启动 Apache HTTP 服务器并激活新配置,执行以下命令 systemctl
命令与 sudo
:
sudo systemctl reload apache2
现在您可以通过访问进行验证 https://example1.com 和 https://example2.com 在您的浏览器上。
恭喜! 我们已经成功设置 Apache Ubuntu 上的虚拟主机。
结论
在本文中,我们设置 Apache Ubuntu 上的虚拟主机,这对于在同一台服务器上为多个网站提供服务非常有用。
感谢您的阅读! ?