Ubuntu 默认 apt 源中的 Nginx 版本比较旧,今天介绍下如何在 Ubuntu 中安装最新版本的 Nginx。

要安装较新版本的 Nginx, 可以使用 Nginx 的 APT 源。执行如下脚本来添加 Nginx APT 源:

#!/bin/bash

release=$(lsb_release -cs)

cat <<EOF > /etc/apt/sources.list.d/nginx.list
deb https://nginx.org/packages/ubuntu/ $release nginx
deb-src https://nginx.org/packages/ubuntu/ $release nginx
EOF

之后更新 package 信息:

apt update

在执行上面的命令时,可能会遇到类似下面的报错信息:

W: GPG error: https://nginx.org/packages/ubuntu xenial InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ABF5BD827BD9BF62

这是因为 APT 源中都会有一个 InRelease 文件[1],里面包含了 package 的 meta-information,通常这个文件都会通过私钥进行签名。在 apt update 命令执行过程中,通过公钥对这个签名做验证。如果本地不存在相应的公钥,就会报上面的错误。此时添加对应的 PUBKEY 就可以了:

apt-key adv --recv-key --keyserver keyserver.ubuntu.com ABF5BD827BD9BF62

之后再次执行 apt update 命令就不会有报错信息了。

更新完 package 信息后,执行如下命令查看所有可用的 Nginx 版本:

$ apt-cache madison nginx
nginx | 1.20.1-1~xenial | https://nginx.org/packages/ubuntu xenial/nginx amd64 Packages
nginx | 1.20.0-1~xenial | https://nginx.org/packages/ubuntu xenial/nginx amd64 Packages
nginx | 1.18.0-2~xenial | https://nginx.org/packages/ubuntu xenial/nginx amd64 Packages
nginx | 1.18.0-1~xenial | https://nginx.org/packages/ubuntu xenial/nginx amd64 Packages
nginx | 1.16.1-1~xenial | https://nginx.org/packages/ubuntu xenial/nginx amd64 Packages
nginx | 1.16.0-1~xenial | https://nginx.org/packages/ubuntu xenial/nginx amd64 Packages
nginx | 1.14.2-1~xenial | https://nginx.org/packages/ubuntu xenial/nginx amd64 Packages
nginx | 1.14.1-1~xenial | https://nginx.org/packages/ubuntu xenial/nginx amd64 Packages
nginx | 1.14.0-1~xenial | https://nginx.org/packages/ubuntu xenial/nginx amd64 Packages
...

执行 apt install nginx 命令,默认会安装最新的 Nginx 版本(或将已安装的Nginx升级到最新版本)。

如果想要安装特定版本的 Nginx, 可以指定对应的版本号,例如:

apt install nginx=1.18.0-2~xenial

最新文章

  1. ASP.Net请求处理机制初步探索之旅 - Part 1 前奏
  2. ModernUI教程:如何使用你自己的导航框架
  3. 部署点评Cat监控项目(转)
  4. sql 优化 链接提示 查询提示 标提示
  5. Shadow SSDT详解、WinDbg查看Shadow SSDT
  6. Human and AI&#39;s future (reverie)
  7. PYTHON实现HTTP摘要认证(DIGEST AUTHENTICATION)
  8. Android 调节当前Activity的屏幕亮度
  9. 用JS判断两个数字的大小
  10. HDU 1815, POJ 2749 Building roads(2-sat)
  11. JS document 获取 html对象的问题
  12. 使用 Vue 开发 scrollbar 滚动条组件
  13. Flask路由报错:raise FormDataRoutingRedirect(request)
  14. vs2013 跳过IE10
  15. connection reset 分析解决(转载)
  16. 【设计模式】—— 策略模式Strategy
  17. 第13月第13天 iOS 放大消失动画
  18. 【面试虐菜】—— JAVA面试题(2)
  19. JVM自动内存管理:对象判定和回收算法
  20. zz 【见闻八卦】《金融时报》年度商业书单:互联网题材占一半

热门文章

  1. 解决windows下使用vscode没有函数提示的问题
  2. python win32 microsoft excel 类range的copyPictrue方法无效
  3. MySQL Workbench部分出错及可能解决方案
  4. web-bootstrap-button
  5. Datax-web入门配置与启动
  6. JS日期时间增加减少
  7. laravel 服务容器,容器概念
  8. 创建异步倒计时触发Task
  9. Java基础学习:12、代码块
  10. 软件开发流程-路飞项目需求- pip永久换源-虚拟环境-路飞项目前后端创建-包导入-后端项目调整目录