如何在 Ubuntu 18.04 上安装 Nginx

Nginx的发音是 “engine x”, 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理服务器。互联网上一些很大的站点都使用 Nginx 来负载。

Nginx 的可以被用作一个独立的 Web 服务器,并可作为 Apache 的和其它的 web 服务器的反向代理。

与 Apache 相比,Nginx 可以处理大量并发连接,并且每个连接的内存占用量更小。

本教程将概述在 Ubuntu 18.04 计算机上安装 Nginx 所需的步骤。

先决条件

本教程开始之前,请确保您登录的使用 sudo 权限的用户,你没有安装 Apache 或任何其他运行在 80443 端口上的 Web 服务器。

安装 Nginx

Nginx 软件包在 Ubuntu 自有仓库中可用,安装非常简单。

我们首先更新包列表,然后安装 Nginx :

sudo apt update
sudo apt install nginx

安装完成后, Nginx 服务将自动启动。您可以使用以下命令检查服务的状态:

sudo systemctl status nginx

输出看起来像这样:

● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2018-04-29 06:43:26 UTC; 8s ago
Docs: man:nginx(8)
Process: 3091 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 3080 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 3095 (nginx)
Tasks: 2 (limit: 507)
CGroup: /system.slice/nginx.service
├─3095 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─3097 nginx: worker process

配置防火墙

假设您正在使用 UFW 管理防火墙,则需要打开 HTTP (80)和 HTTPS (443)端口。你可以通过启用 ‘Nginx Full’ 配置文件来实现这一点,该配置文件包含两个端口的规则:

sudo ufw allow 'Nginx Full'

要验证状态类型:

sudo ufw status

输出将如下所示:

Status: active

To Action From
-- ------ ----
22/tcp ALLOW Anywhere
Nginx Full ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)

测试安装

您可以通过在浏览器中访问 http://YOUR_IP 来测试新的 Nginx 安装,然后您将看到默认的 Nginx 登录页面,如下图所示:

管理 Nginx 服务

您可以像管理任何其他系统服务一样管理 Nginx 服务。

要停止 Nginx 服务,请运行:

sudo systemctl stop nginx

要再次启动它,请键入:

sudo systemctl start nginx

要重新启动 Nginx 服务:

sudo systemctl restart nginx

完成一些配置更改后重新加载 Nginx 服务:

sudo systemctl reload nginx

默认情况下, Nginx 服务将在启动时启动。如果要禁用 Nginx 服务随机启动:

sudo systemctl disable nginx

并重新启用它:

sudo systemctl enable nginx

Nginx 配置文件的结构和最佳实践

  • 所有 Nginx 配置文件都位于 /etc/nginx 目录中。
  • 主要的 Nginx 配置文件是 /etc/nginx/nginx.conf
  • 为了使 Nginx 配置更易于维护,建议为每个域创建单独的配置文件。您可以根据需要创建尽可能多的服务器块文件。
  • Nginx 服务器块文件存储在 /etc/nginx/sites-available 目录中。 Nginx 不使用此目录中的配置文件,除非它们链接到 /etc/nginx/sites-enabled 目录。
  • 要激活服务器块,您需要创建从 sites-available 目录中的配置文件站点到 sites-enabled 目录的软连接。
  • 建议遵循标准命名约定。例如,如果您的域名是 mydomain.com, 则应命名您的配置文件为 /etc/nginx/sites-available/mydomain.com.conf
  • 目录 /etc/nginx/snippets 用来存放可包含在其他服务器块文件中的配置片段。如果使用可重复的配置段,则可以将这些段重构为片段,并将片段文件包含到服务器块中。
  • Nginx 日志文件 (access.log 和 error.log) 位于 /var/log/nginx 目录中。建议每个服务器模块有不同 accesserror 日志文件。
  • 您可以将域文档根目录设置为所需的任何位置。 webroot 最常见的位置包括:
    • /home/<user_name>/<site_name>
    • /var/www/<site_name>
    • /var/www/html/<site_name>
    • /opt/<site_name>

结论

恭喜,您已在 Ubuntu 18.04 服务器上成功安装了 Nginx 。现在您已准备好开始部署应用程序并将 Nginx 用作 Web 服务器或代理服务器。安全证书是当今所有网站必备的功能,为了使用免费的 Let’s Encrypt SSL 证书保护您的网站,您可以参考本指南: 在 Ubuntu 18.04 上使用 Let’s Encrypt 保护 Nginx

如果您打算在服务器上托管多个域,可以查看教程: 如何创建 Nginx 服务器块