如何在Ubuntu 18.04,Ubuntu 19.04上安装Nginx最新版本

先前我们讨论了如何在Ubuntu 18.04 LTS上安装LEMP堆栈,LEMP堆栈是托管动态网站的常用软件堆栈。 但是,Ubuntu LTS(长期支持)版本中的软件通常是过时的。 在本教程中,我们将学习如何在Ubuntu 18.04和Ubuntu 19.04上安装Nginx最新版本。 在撰写本文时,Nginx的最新版本是2019年5月21日发布的1.17.0。您可以在此处查看更改日志。

从官方Nginx存储库在Ubuntu 18.04、19.04上安装Nginx最新版本

Nginx.org为Ubuntu维护一个存储库。 我们可以使用此存储库来安装最新版本的Nginx。 首先,使用以下命令为Nginx创建存储库源文件。 Nano是命令行文本编辑器。

sudo nano /etc/apt/sources.list.d/nginx.list

在文件中添加以下两行。

deb [arch=amd64] http://nginx.org/packages/mainline/ubuntu/ bionic nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ bionic nginx

如果您使用Ubuntu 19.04,则进行更改 bionicdisco

deb [arch=amd64] http://nginx.org/packages/mainline/ubuntu/ disco nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ disco nginx

要在Nano文本编辑器中保存文件,请按 CTRL+O,然后按 Enter 确认。 按 CTRL+X 退出。 为了验证从该存储库下载的软件包的完整性,我们需要使用以下命令导入Nginx公钥。

wget http://nginx.org/keys/nginx_signing.key

sudo apt-key add nginx_signing.key

将存储库添加到Ubuntu 18.04系统后,运行以下命令以更新存储库信息。

sudo apt update

如果已经从默认的Ubuntu软件存储库安装了Nginx,则需要将其删除。

sudo apt remove nginx nginx-common nginx-full nginx-core

另外,您可能需要备份主要的Nginx配置文件 /etc/nginx/nginx.conf 因为它将被新的 nginx.conf 当我们稍后安装最新版本的Nginx时,该文件。

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

您现有的服务器阻止文件(即虚拟主机文件)将保持不变。 现在运行以下命令从nginx.org信息库安装Nginx。

sudo apt install nginx

如果apt软件包管理器询问您是否要安装/etc/nginx/nginx.conf文件的新版本,则可以回答“否”。

nginx 1.17.0 Ubuntu

安装Nginx之后,测试Nginx配置。

sudo nginx -t

如果测试成功,请启动Nginx。

sudo systemctl start nginx

在启动时启用自动启动。

sudo systemctl enable nginx

要检查Nginx的状态,请运行

systemctl status nginx

输出:

● nginx.service - nginx - high performance web server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-05-26 21:01:10 CST; 3s ago
     Docs: http://nginx.org/en/docs/
  Process: 16159 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
 Main PID: 16160 (nginx)
    Tasks: 2 (limit: 4915)
   CGroup: /system.slice/nginx.service
           ├─16160 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
           └─16161 nginx: worker process

May 26 21:01:10 bionic.local.domain systemd[1]: Starting nginx - high performance web server...
May 26 21:01:10 bionic.local.domain systemd[1]: Started nginx - high performance web server.

要检查Nginx版本,请使用以下命令:

nginx -v

输出:

nginx version: nginx/1.17.0

您还可以通过以下方法查看更详细的信息:

nginx -V

输出:

Nginx Ubuntu 18.04与兼容

设置Nginx进程用户

Nginx.org存储库集中的Nginx软件包 nginx 作为Nginx进程用户,可以从 /etc/nginx/nginx.conf 文件。 (如果您选择安装新版本的 /etc/nginx/nginx.conf 文件。)

user nginx;

但是,PHP-FPM进程的默认用户和组是 www-data 从中可以看出 /etc/php/7.2/fpm/pool.d/www.conf 文件。

user = www-data
group = www-data

所以我们需要设定 www-data 作为Nginx进程的用户 /etc/nginx/nginx.conf 文件。

sudo nano /etc/nginx/nginx.conf

更改

user nginx;

user www-data;

保存并关闭文件。 然后重新加载Nginx。

sudo systemctl reload nginx

包括服务器阻止文件

默认情况下,仅 /etc/nginx/conf.d/ 目录将包括在内。 如果您还想使用服务器阻止文件 sites-enabled 目录,然后确保将以下行添加到 http 的部分 nginx.conf 文件。

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

安装Certbot Nginx插件

如果您以前是从Ubuntu存储库安装Nginx的,那么从nginx.org存储库安装Nginx时,可能已删除了python3-certbot-nginx软件包。 我们需要重新安装它,以便您的TLS证书可以像往常一样自动更新。

sudo apt install python3-certbot-nginx

如何自动重启Nginx

有时Nginx可能由于各种原因而崩溃。 如果您想让Nginx在崩溃后自动重启,那么我们需要编辑Nginx服务单元。 首先,将原始Nginx服务单元复制到 /etc/systemd/system/ 目录。

sudo cp /lib/systemd/system/nginx.service /etc/systemd/system/nginx.service

然后编辑服务单元。

sudo nano /etc/systemd/system/nginx.service

将以下行添加到 [service] 部分。

Restart=always
RestartSec=2

像这样:

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
Restart=always
RestartSec=2

这会使Nginx在崩溃后每2秒尝试重新启动一次。 保存并关闭文件。 然后重新启动Nginx。

sudo systemctl restart nginx

下一步

我希望本教程可以帮助您在Ubuntu 18.04和Ubuntu 19.04上安装Nginx最新版本。 您可能还想在Ubuntu 18.04和19.04上安装最新版本的MariaDB数据库服务器。 与往常一样,如果您发现此帖子有用,请订阅我们的免费新闻简报以获取新的提示和技巧。

Sidebar