如何在 Ubuntu 上创建和设置 Nginx 虚拟主机

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

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

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

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

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

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

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

sudo apt update

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

sudo apt install nginx

使用systemctl 命令启动 Nginx 服务。

sudo systemctl start nginx

在您的 Web 浏览器中,转到http://localhost:80以确认 Nginx 是否已成功安装。如果是,您的浏览器将显示类似于下面的页面。

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

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

/var/www/目录下创建一个目录。您可以将其命名为VirtualHost,但可以随意使用您选择的任何有意义的名称。为此,请使用cd 命令导航到/var/www目录。

cd /var/www

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

mkdir -p VirtualHost

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

cd /VirtualHost 
touch index.html

使用您喜欢的文本编辑器打开index.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>

保存并关闭文件。

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

cd /etc/nginx/sites-enabled

我们将文件命名为virtual_host,但您可以随意使用您选择的任何有意义的名称。

touch virtual_host

使用您喜欢的文本编辑器打开您刚刚创建的文件,即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;
}
}

保存并关闭文件。

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

  • listen:指定 Nginx 应该在 81 端口为网站提供服务,即 https://localhost:81。
  • server_name:您可以给它任何名称,因为此时您没有使用任何真正的域。我已经将我的命名为my.virtualhost.com
  • root:它是网站的位置。在这种情况下,/var/www/VirtualHost目录。
  • index:指定网站的起始页,即index.html
  • 重新启动 Nginx 服务器以保存您所做的更改。

    sudo systemctl restart nginx

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

    sudo systemctl status nginx

    如果一切正常,请在 Web 浏览器中导航到 URL http://localhost:81。

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

    本指南向您展示了如何使用 Nginx Web 服务器在 Ubuntu 上托管多个网站。网站开发是目前最抢手的工程技能之一,所以今天就用 PHP 开始您的 Web 开发之旅吧。

    标签: 网络服务器 Ubuntu 服务器