怎样在 Ubuntu 上创建和设置 Nginx 虚拟主机

有没有想过怎样在不使用虚拟机或复杂设置的情况下在同一台服务器上托管多个网站? Nginx 虚拟主机是您正在寻找的。

本指南将介绍怎样使用 Nginx Web 服务器在 Ubuntu 上配置虚拟 Web 主机。 Nginx 是一个高性能的 Web 和反向代理服务器。 它是轻量级、跨平台和开源的。

什么是虚拟主机?

虚拟网络主机是一种在单个物理服务器或虚拟机上运行或托管具有不同域名的多个网站的方法。

虚拟主机被网站托管公司广泛使用,以实现规模经济并满足多个客户的需求,而无需在专用服务器资源或硬件上花费太多。

如果您曾经使用过共享主机,那么它很可能是在幕后发挥作用的虚拟主机。

第 1 步:安装 Nginx 服务器

如果你没有安装 Nginx,这里是你可以使用 APT 在 Ubuntu 上快速安装它的方法。

首先,根据配置的源更新您的包信息:

sudo apt update

然后,按如下方式安装 Nginx:

sudo apt install nginx

测试 Nginx

使用 systemctl 命令启动 Nginx 服务。

sudo systemctl start nginx

在您的网络浏览器中,前往 https://localhost:80 确认 Nginx 是否安装成功。 如果是,您的浏览器将显示类似于下面的页面。

第 2 步:创建和配置网站

默认情况下,Nginx 服务的网站运行在 80 端口,存储在 /var/www/html 目录。

要配置虚拟主机,建议您将每个单独的网站放在不同的目录中,以获得更好的安全性和管理。

在目录下创建一个目录 /var/www/ 目录。 你可以给它起名字 虚拟主机 但请随意使用您选择的任何有意义的名称。 为此,导航到 /var/www 使用 cd 命令的目录。

cd /var/www

接下来,创建网站目录,如下所示:

mkdir -p VirtualHost

创建一个 索引.html 使用以下命令在目录中创建文件:

cd /VirtualHost 
touch index.html

打开 索引.html 使用您喜欢的文本编辑器创建文件,并在其中添加以下代码行:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Nginx: Web & Reverse proxy server</title>
</head>
<body>
<h1>Welcome to Nginx</h1>
<p>I've just configured a virtual host using Nginx web server on Linux</p>
</body>
</html>

Save 和 close 文件。

第 3 步:配置虚拟主机

你可以在 Nginx 配置文件中找到 /etc/nginx 目录。 要配置虚拟主机,首先在站点中创建一个虚拟主机配置文件 /etc/nginx/sites-enabled 目录。

cd /etc/nginx/sites-enabled

我们已将文件命名为 虚拟主机 但请随意使用您选择的任何有意义的名称。

touch virtual_host

打开刚刚创建的文件,即 虚拟主机, 使用您喜欢的文本编辑器并在其中粘贴以下代码行:

server {
listen 81;
listen [::]:81;
server_name my.virtualhost.com;
root /var/www/VirtualHost;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}

Save 和 close 文件。

以下是解释文件中的一些重要配置:

  • : 指定 Nginx 应该在 81 端口为网站提供服务,即 https://localhost:81。
  • 服务器名称: 您可以给它起任何名称,因为此时您没有使用任何真实域。 我已经命名了我的 my.virtualhost.com.
  • : 这是网站的位置。 在这种情况下, /var/www/虚拟主机 目录。
  • 指数:指定网站的起始页,即 索引.html.

第 4 步:服务网站

重新启动 Nginx 服务器以保存您所做的更改。

sudo systemctl restart nginx

您可以通过运行以下命令检查 Nginx 服务器的状态:

sudo systemctl status nginx

如果一切正常,请导航到 URL https://localhost:81在您的网络浏览器中。

现在,您的服务器上有两个网站,一个在端口 81 上运行,另一个在端口 80 上运行。

在 Linux 上构建和托管您的第一个网站

本指南向您展示了怎样使用 Nginx Web 服务器在 Ubuntu 上托管多个网站。 网站开发是目前最需要的工程技能之一,所以立即使用 PHP 开始您的 Web 开发之旅。