在Debian系统下APT安装最新版NGINX

简介

Nginx是一个异步框架的Web服务器,也可以用作反向代理,负载平衡器和HTTP缓存。该软件由Igor Sysoev创建,并于2004年首次公开发布。同名公司成立于2011年,以提供支持。Nginx是一款免费的开源软件,根据类BSD许可证的条款发布。

本文介绍的是如何在Debian系统中通过添加源的方式,apt安装最新版Nginx.

安装PHP可以看这篇文章:在Debian系统中APT安装PHP 7.1/7.2/7.3/7.4

安装

安装先决条件:

sudo apt install curl gnupg2 ca-certificates lsb-release

要为稳定的nginx软件包设置apt仓库,请运行以下命令:

echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

如果要使用主线nginx软件包,请改为运行以下命令:

echo "deb http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

接下来,导入官方的nginx签名密钥,以便apt可以验证软件包的真实性:

curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

验证您现在是否具有正确的密钥:

sudo apt-key fingerprint ABF5BD827BD9BF62

输出应包含完整指纹573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62如下:

pub   rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
      573B FD6B 3D8F BC64 1079  A6AB ABF5 BD82 7BD9 BF62
uid   [ unknown] nginx signing key 

要安装nginx,请运行以下命令:

sudo apt update
sudo apt install nginx

常见问题

使用 NGINX 官方源安装会发现 Systemd 中存在报错

● nginx.service - nginx - high performance web server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2020-04-15 18:16:30 CST; 22min ago
     Docs: http://nginx.org/en/docs/
  Process: 31377 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
 Main PID: 31379 (nginx)
    Tasks: 3 (limit: 1122)
   Memory: 8.4M
   CGroup: /system.slice/nginx.service
           ├─31379 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
           ├─31380 nginx: worker process
           └─31381 nginx: worker process

4月 15 18:16:30 debian systemd[1]: nginx.service: Succeeded.
4月 15 18:16:30 debian systemd[1]: Stopped nginx - high performance web server.
4月 15 18:16:30 debian systemd[1]: Starting nginx - high performance web server...
4月 15 18:16:30 debian systemd[1]: nginx.service: Can't open PID file /run/nginx.pid (yet?) after start: No such file or directory
4月 15 18:16:30 debian systemd[1]: Started nginx - high performance web server.

问题原因

这是因为 NGX 启动时 PID 文件并未产生,导致文件无法读取

解决方法:

/lib/systemd/system/nginx.service中添加下面语句,以实现在执行可执行文件前等待 0.1s 

ExecStartPost=/bin/sleep 0.1

然后重载守护单元

systemctl daemon-reload

重启nginx即可

service nginx restart

参考链接

  1. nginx: Linux packages
  2. nginx.service: Failed to read PID from file /run/nginx.pid: Invalid argument
实用教程

在Debian系统中APT安装PHP 7.1/7.2/7.3/7.4

2020-4-3 16:13:17

实用教程

vlmcsd搭建KMS服务器

2020-4-16 18:56:40

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索