如何设置 Apache Ubuntu 上的虚拟主机?

的目的 Apache 虚拟主机是在一台机器上运行多个网站。 它可以是基于 IP 的或基于名称的。

  • 基于 IP 的虚拟主机根据 IP 地址设置不同的指令。 因此,每个主机都需要一个单独的 IP 地址,并且通常用于在不同的端口和接口上托管网站。
  • 基于名称的虚拟主机允许您托管多个具有相同 IP 地址的网站,因为服务器依赖于客户端以 HTTP 标头的形式报告主机名。

先决条件

  • Apache HTTP Server 安装在 Ubuntu 20.04 机器上。
    (了解如何安装 Apache Ubuntu 上的 HTTP 服务器)
  • 至少两个域名来测试虚拟主机
  • sudo 或root权限

为您的网站创建目录结构

在本教程中,我们使用域 example1.comexample2.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.comhttps://example2.com 在您的浏览器上。

Example1.com example1.com
Example2.com example2.com

恭喜! 我们已经成功设置 Apache Ubuntu 上的虚拟主机。

结论

在本文中,我们设置 Apache Ubuntu 上的虚拟主机,这对于在同一台服务器上为多个网站提供服务非常有用。

感谢您的阅读! ?