ginx(发音为“engine-x”)是一种流行的 Web 服务器软件,以其高性能和可靠性而闻名。它是许多流行网站使用的开源软件,包括 Netflix、GitHub 和 WordPress。Nginx 可以用作 Web 服务器、负载均衡器、反向代理和 HTTP 缓存等。
它以其高性能、稳定性和可扩展性而闻名。对于托管需要快速可靠的网络托管的网站、应用程序和服务来说,它是一个绝佳的选择。按照本指南,您可以在 Ubuntu 计算机上安装和设置 Nginx 并提供网页服务。
一、在 Ubuntu 上安装 Nginx
1、前提条件
在 Ubuntu 上安装 Nginx 之前,您需要满足一些先决条件:
①、安装Ubuntu系统的服务器
推荐阿里云、腾讯云或华为云这样的厂商的服务器,比较稳定。
- 阿里云服务器:https://iil.ink/aliecs
- 腾讯云服务器:https://iil.ink/tengxuncvm
- 华为云服务器:https://iil.ink/huaweiyunyouhui
②、服务器的 root 用户身份登录或使用命令来实现sudo。
按照以下步骤在 Ubuntu 系统上安装 Apache。
步骤 1. 更新 Ubuntu
始终建议在安装任何新软件之前将 Ubuntu 服务器更新到最新版本。您可以通过在终端中运行以下命令来完成此操作:
sudo apt-get update
sudo apt-get upgrade
步骤 2. 配置其他现有 Web 服务器
如果您的 Ubuntu 服务器上安装了其他 Web 服务器(例如 Apache),请在安装 Nginx 之前卸载它们。这将避免任何冲突或端口绑定问题。
sudo apt-get remove apache2
或者,如果您想与 Apache 一起运行 Nginx,您可以选择使用 Nginx 作为 Apache 的反向代理。此配置允许 Nginx 处理传入请求并将其转发给 Apache 进行处理。此设置可以提供两个 Web 服务器的优点。
步骤3.安装Nginx
Nginx 在 Ubuntu 存储库中可用。因此,您不需要添加任何其他第三方存储库。相反,在终端上执行以下命令来安装 Nginx。
sudo apt install nginx
步骤 4. 启动 Nginx:
安装后,Nginx 应该会自动启动。但是,如果安装后未启动该服务,您可以运行以下命令来启动该服务。
sudo systemctl start nginx
步骤5.检查Nginx状态:
您可以使用以下命令检查 Nginx 的状态:
sudo systemctl status nginx
该命令将显示 Nginx 的当前状态。
从上图中,您可以看到Nginx服务在我们的系统上成功运行。
提示:如果启动 Nginx 服务时出现错误,很有可能是 80 端口已被使用。Nginx 默认使用端口 80 进行 HTTP 流量。如果另一个服务已经使用了80端口,Nginx将无法启动。要检查80端口是否被使用,可以运行以下命令:
sudo lsof -i :80
如果另一个服务使用端口 80,您可以停止该服务或将 Nginx 配置为使用其他端口。
步骤 6. 配置防火墙
如果您已在系统上启用 UFW 防火墙,请确保对其进行适当配置,以允许 Nginx 使用的端口上的传入流量。Nginx 使用的默认端口是 HTTP 的 80 和 HTTPS 的 443。您可以运行以下命令来允许 Nginx 的流量。
sudo ufw allow 'Nginx HTTP'
sudo ufw allow 'Nginx HTTPS'
步骤 7. 测试 Nginx
要测试 Nginx 是否正常工作,请打开 Web 浏览器并在地址栏中输入 Ubuntu 服务器的 IP 地址。您可以通过运行以下任意命令来获取系统的 IP 地址。
ifconfig
Or,
ip a s
如果 Nginx 安装正确,您应该会看到默认的 Nginx 欢迎页面。
二、创建您自己的网站
当您在浏览器中输入系统的 IP 地址时看到的网站是默认的 Nginx 网站,位于该/var/www/html目录中。如果您想托管静态 HTML 站点,您可以删除目录中的文件 /var/www/html并添加自定义文件。
但是,如果要托管多个网站,则必须配置虚拟主机。虚拟主机配置允许您在单个服务器上运行多个网站或 Web 应用程序。每个虚拟主机都有自己的一组配置文件,允许您独立自定义每个网站的行为。
请按照以下步骤操作。
步骤 1. 为您的网站创建一个目录
使用该mkdir命令在 /var/www 文件夹中为您的网站文件创建一个目录。例如,我们将创建一个名为 test-website 的目录。
sudo mkdir /var/www/test-website
步骤 2. 为您的网站创建一个新的 HTML 文件:
现在,您需要将网站文件添加到此目录。对于本文,我们将创建一个名为“index.html”的简单 HTML 文件。但是,如果您使用的是 WordPress 或任何其他工具,则可以将文件提取到这个新目录。
sudo nano index.html
向文件中添加一些基本的 HTML 代码,例如:
How to Install and Use Nginx on Ubuntu (fosslinux.com)
How to Install and Use Nginx on Ubuntu (fosslinux.com)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed et dolor quis ex posuere euismod. Sed pharetra vel odio in venenatis. Donec eget eros vel nisi varius rutrum. Aliquam efficitur lacus at purus dictum lobortis. Duis ut diam dignissim, dapibus turpis vel, consectetur orci. Aliquam erat volutpat. Nulla facilisi. Praesent ut sapien sapien.
保存(Ctrl + O,然后 Enter)并关闭文件(Ctrl + X)。
步骤 3. 为虚拟主机创建新的 Nginx 配置文件
下一步是为您的新网站创建配置文件。对于这篇文章,我们将其称为“test-website.conf”。启动终端并执行以下命令。
sudo nano /etc/nginx/sites-available/test-website.conf
在文件中添加以下配置:
server {
listen 80;
listen [::]:80;
root /var/www/test_website;
index index.html;
server_name test-website.com www.test-website.com;
location / {
try_files $uri $uri/ =404;
}
}
此配置告诉 Nginx 侦听端口 80 并提供 /var/www/test-website 目录中的文件。它还将默认索引文件设置为index.html,并指定虚拟主机的域名。
保存(Ctrl + O,然后 Enter)并关闭文件(Ctrl + X)。
步骤 4. 启用虚拟主机
接下来,您需要创建一个符号链接来启用虚拟主机:
sudo ln -s /etc/nginx/sites-available/test-website.conf /etc/nginx/sites-enabled/
接下来,您需要运行测试来确认您的配置和语法是否正确。执行下面的命令。
sudo nginx -t
如果配置没问题,您可以继续重新启动 Nginx 以应用更改:
sudo systemctl restart nginx
恭喜,您已经创建了自己的网站并使用 Nginx 设置了虚拟主机。您现在可以通过在网络浏览器中输入您的域名或 IP 地址来访问您的网站。
步骤 5:测试您的网站
您可以通过在浏览器中输入 IP 地址来继续测试您的网站。
如果您使用了不同的端口号(例如 81),请在 IP 地址中指定它,如下所示。
192.168.1.27:81
Nginx 与 Apache对比
Nginx 和 Apache 是世界上最流行的两种 Web 服务器。虽然两者都有相同的目的,但一些关键的差异使它们有所不同。
性能
Nginx 以其高性能和低资源消耗而闻名。它旨在以低内存使用量处理许多并发连接。另一方面,Apache 可能是资源密集型的,并且可能需要更多的内存来处理相同的流量。
灵活性
Apache 是比 Nginx 更灵活的 Web 服务器。它支持许多模块,并且可以轻松定制以满足特定需求。另一方面,Nginx 的模块集更加有限,并且在定制方面不太灵活。
实用性
Nginx 通常被认为比 Apache 更容易配置和使用。其配置文件更加简单直观,可以快速轻松地进行设置。然而,Apache 的设置和配置可能更加复杂,尤其是对于初学者而言。
**提示:**Nginx 和 Apache 都有各自的优点和缺点。两者之间的选择取决于所服务的网站或应用程序的具体需求。
原文来自我的博客:如何在 Ubuntu 上安装和使用 Nginx?
扩展阅读:
【Nginx如何配置一个静态WEB服务?】
【Linux命令大全 摆脱死记Linux命令的烦恼】
【如何限制Linux系统服务器上传文件的大小?】
【如何在Linux中轻松删除源安装的软件包?】