从源升级 nginx

从源升级 nginx

在 Debian Jessie 上,我通过 apt-get 安装了 nginx。现在我想升级到最新的 nginx 以利用 http2。我无法将其添加到 source.list 文件中,因为它是 Raspberry PI。我下载了它,编译它没有问题,但它安装在了不同的位置。

现在我nginx -v得到 1.6.3,但如果我/usr/local/sbin/nginx -v得到 1.11.2。

我可以在配置期间设置安装路径,但我不知道这是否是我想要做的。我想在 1.6 之上安装 1.11,并且不会丢失我的所有站点文件和配置。如何从源代码升级 nginx 并保留所有旧配置?

答案1

在我看来,一个更好的方法是使用,而不是自己编译,特别是如果你还没有那么多经验(没有冒犯的意思),向后移植,其存在是因为:

您运行的是 Debian 稳定版,因为您更喜欢 Debian 稳定版树。它运行良好,只有一个问题:与其他发行版相比,该软件有点过时。这就是反向移植的用武之地。

这样还可以为您提供安全更新,否则您需要自己处理。

还有一个警告:当前版本的nginxinj-bpo是针对 构建的openssl 1.0.1,这意味着,您将无法使用ALPN,而是使用NPN,因此您无法HTTP/2Chrome用户提供服务,因为开发人员NPN最近放弃了支持,但它可以供使用 的人使用Firefox,例如。我描述了一种解决方法在这里。如果可以的话,请等待大约四个星期:nginxj-bpo针对 进行重建openssl 1.0.2,因此您不再需要这种解决方法。

那么,让我们开始吧(现在):

  • 添加jessie-backports到您的 sources.list。它描述在这里

  • 设置APT pinning,仅从 中提取您指定的包jessie-backports

    放一些类似以下内容的内容:

    Package: *
    Pin: release n=jessie
    Pin-Priority: 900
    
    Package: * 
    Pin: release a=jessie-backports
    Pin-Priority: 100
    

    进入/etc/apt/preferences。如果此文件尚不存在,请创建它。

  • 跑步apt-get update

  • 从运行apt-get install -t jessie-backports nginx进行安装。nginxjessie-backports

相关内容