如何在 Ubuntu 18.04 上安装 Nginx

Nginx的发音是 “engine x”,它是一个免费的,开源的,高性能 HTTP 和反向代理服务器,负责处理 Internet 上一些最大站点的负载。

Nginx 可以用作独立的 Web 服务器,也可以用作 Apache 和其他 Web 服务器的反向代理。

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

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

先决条件

在开始本教程之前,请确保您以具有 sudo 特权的用户身份登录,并且您没有在端口 80443 上运行 Apache 或任何其他 Web 服务器。

安装 Nginx

Nginx 软件包在默认的 Ubuntu 仓库中可用。安装非常简单。

首先,更新软件包列表,然后安装 Nginx:

1
2
sudo apt update
sudo apt install nginx

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

1
sudo systemctl status nginx

输出将如下所示:

1
2
3
4
5
6
7
8
9
10
11
● 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” 配置文件,其中包括两个端口的规则:

1
sudo ufw allow 'Nginx Full'

要验证状态类型:

1
sudo ufw status

输出将类似于以下内容:

1
2
3
4
5
6
7
8
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-screenshot

管理 Nginx 服务

您可以通过与其他任何 systemd 服务相同的方式来管理 Nginx 服务。

停止 Nginx 服务,请运行:

1
sudo systemctl stop nginx

启动 Nginx 服务,请运行:

1
sudo systemctl start nginx

重新启动 Nginx 服务,请运行:

1
sudo systemctl restart nginx

进行一些配置更改后,请重新加载 Nginx 服务:

1
sudo systemctl reload nginx

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

1
sudo systemctl disable nginx

并重新启用它:

1
sudo systemctl enable nginx

Nginx 配置文件的结构和最佳做法

  • 所有 Nginx 配置文件都位于 /etc/nginx 目录中。
  • Nginx 的主要配置文件是 /etc/nginx/nginx.conf
  • 为了使 Nginx 配置更易于维护,建议为每个域创建一个单独的配置文件。您可以根据需要拥有任意数量的服务器阻止文件。
  • Nginx 服务器阻止文件存储在 /etc/nginx/sites-available 目录中。 Nginx 不会使用此目录中的配置文件,除非它们链接到 /etc/nginx/sites-enabled 目录。
  • 要激活服务器块,您需要创建一个从站点可用目录中的配置文件站点到站点启用目录的软链接。
  • 建议遵循标准命名约定,例如,如果您的域名是 mydomain.com,则您的配置文件应命名为 /etc/nginx/sites-available/mydomain.com.conf
  • /etc/nginx/snippets 目录包含可包含在服务器阻止文件中的配置片段。如果使用可重复的配置段,则可以将这些段重构为片段,并将片段文件包括在服务器块中。
  • Nginx 日志文件(access.log 和 error.log)位于 /var/log/nginx 目录中。建议为每个服务器块使用不同的访问和错误日​​志文件。
  • 您可以将域文档的根目录设置为所需的任何位置。 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。