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

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

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

目录

先决条件

  • Apache 安装在 Ubuntu 20.04 机器上的 HTTP 服务器。
    (了解如何安装 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.

略低于 DocumentRootServerName 拥有您的域名,以及 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 上的虚拟主机,在为同一服务器上的多个网站提供服务时非常有用。

感谢您的阅读! ?