Nginx发音为engine x,是开源的高性能HTTP和反向代理服务器,负责处理Internet上一些最大站点的负载。 它可用作HTTP和非HTTP服务器的独立Web服务器,负载均衡器,内容缓存和反向代理。与Apache相比,Nginx可以处理大量并发连接,并且每个连接的内存占用量更小。

本教程介绍了如何在Ubuntu 20.04上安装和管理Nginx。包括使用apt安装Nginx,配置UFW防火墙打开80或443上端口,使用systemctl管理Nginx,Nginx配置文件的结构和最佳做法。

先决条件

在继续之前,请确保您以具有sudo权限的用户登录,并且端口80或443上没有运行Apache或其它监听80或者443端口的进程。

安装Nginx

Nginx在默认的Ubuntu存储库中可用。 要安装它,请使用apt命令运行以下命令,这将会更新软件包索引并且安装Nginx:

sudo apt update
sudo apt install nginx

安装完成后,Nginx服务将自动启动。 您可以通过运行systemctl命令查看服务的状态,从而确定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 Sat 2020-05-02 20:25:43 UTC; 13s ago
...

至此,Nginx已安装在您的Ubuntu计算机上。 没有去您可以使用systemd unit的方式管理Nginx服务

配置防火墙

现在您已经在服务器上安装并运行了Nginx,您需要确保将防火墙配置为允许HTTP(80)和HTTPS(443)端口上的连接。 假设您使用的是UFW防火墙管理工具,则可以通过启用“Nginx Full”配置文件来实现此目的,其中包括80443两个端口的规则:

sudo ufw allow 'Nginx Full'

如你需要确定80443两个端口是否已打开,执行以下命令查看结果:

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)

测试安装

要测试已安装的Nginx,请在您的浏览器中打开http://YOUR_IP,您应该会看到默认的Nginx页面。

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

  • 所有Nginx配置文件都位于/etc/nginx目录中。
  • 主要的Nginx配置文件为/etc/nginx/nginx.conf
  • 为使Nginx配置更易于维护,它建议为每个域创建一个单独的配置文件。您可以根据需要拥有任意数量的server block文件。
  • Nginx server block文件存储在/etc/nginx/sites-available目录中。 Nginx不会使用在此目录中找到的配置文件,除非它们链接到/etc/nginx/sites-enabled目录。
  • 要激活server block,您需要从配置文件站点创建符号链接,从sites-available目录到sites-enabled目录中。
  • 建议遵循标准命名约定。例如,如果您的域名是mydomain.com,则您的配置文件应命名为/etc/nginx/sites-available/mydomain.com.conf
  • /etc/nginx/snippets目录包含server block文件中的配置片段。如果使用可重复的配置片段,则可以将这些片段存放到单独文件中,并将片段文件使用include指令加入到server block中。
  • Nginx日志文件access.logerror.log位于/var/log/nginx中目录。建议每个erver block使用不同的accesserror日志文件。
  • 您可以将域文档根目录设置为所需的任何位置。 Webroot的最常见位置包括:/home/<user_name>/<site_name>/var/www/<site_name>/var/www/html/<site_name>/opt/<site_name>

结论

我们已向您展示了如何在Ubuntu 20.04上安装Nginx。 现在,您可以开始部署应用程序,并将Nginx用作Web或代理服务器。如果您有任何问题或反馈,请随时发表评论。

如何在Ubuntu 20.04的Nginx上配置Let’s Encrypt | myfreax
Web进行安全通信依赖于HTTPS,这需要使用数字证书,以便浏览器验证Web服务器的身份。在本教程中我们将讨论如何使用Certbot工具为自己的HTTP服务器,站点配置HTTPS的SSL证书
如何在Ubuntu 20.04上安装MySQL | myfreax
MySQL是最流行的开源关系数据库管理系统。 它快速,易于使用,可扩展,并且是流行的LAMP和LEMP栈的组成部分
如何在Ubuntu 20.04上安装PHP | myfreax
PHP是最常用的服务器端编程语言之一。本指南介绍了在Ubuntu 20.04上安装PHP并将其与Nginx和Apache集成的必要步骤