如何在 Ubuntu 上创建和设置 Nginx 虚拟主机
您可以通过使用 Nginx 配置虚拟 Web 主机在单个 Ubuntu 服务器上托管多个网站。
有没有想过如何在不使用虚拟机或复杂设置的情况下在同一服务器上托管多个网站? Nginx 虚拟主机正是您所寻找的。
本指南将介绍如何使用 Nginx Web 服务器在 Ubuntu 上配置虚拟 Web 主机。 Nginx 是一个高性能的 Web 和反向代理服务器。它是轻量级的、跨平台的、开源的。
什么是虚拟主机?
虚拟网络主机是一种在单个物理服务器或虚拟机上运行或托管多个具有不同域名的网站的方法。
虚拟主机被网站托管公司广泛使用,以实现规模经济并满足多个客户的需求,而无需在专用服务器资源或硬件上花费太多。
如果您曾经使用过共享主机,那么它很可能是在幕后发挥作用的虚拟主机。
第1步:安装Nginx服务器
如果您尚未安装 Nginx,可以通过以下方法在 Ubuntu 上使用 APT 快速安装 Nginx。
首先,根据配置的源更新您的包信息:
sudo apt update
然后,安装 Nginx,如下所示:
sudo apt install nginx
测试 Nginx
使用systemctl命令启动Nginx服务。
sudo systemctl start nginx
在 Web 浏览器中,访问 http://localhost:80 确认 Nginx 是否已成功安装。如果是,您的浏览器将显示类似于以下的页面。
第 2 步:创建和配置网站
默认情况下,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>
保存并关闭文件。
步骤3:配置虚拟主机
您可以在 /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。
第 4 步:提供网站服务
重新启动 Nginx 服务器以保存所做的更改。
sudo systemctl restart nginx
您可以通过运行以下命令来检查 Nginx 服务器的状态:
sudo systemctl status nginx
如果一切正常,请在 Web 浏览器中导航至 URL http://localhost:81。
现在,您的服务器上有两个网站,一个在端口 81 上运行,另一个在端口 80 上运行。
在 Linux 上构建并托管您的第一个网站
本指南向您展示了如何使用 Nginx Web 服务器在 Ubuntu 上托管多个网站。网站开发是目前最紧缺的工程技能之一,因此立即使用 PHP 开始您的 Web 开发之旅。