从源代码升级nginx

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

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

我可以在configuration期间设置安装path,我不知道这是我想要做的。 我想安装1.6的顶部1.11而不是所有的我的网站文件和configuration。 如何从源代码升级nginx并保持我所有的旧configuration?

在我看来,一条更好的路线,而不是独自编译,特别是如果你还没有经验(没有违法),将是使用backports ,因为:

您正在运行Debian stable,因为您更喜欢Debian稳定的树。 它运行得很好,只有一个问题:与其他发行版相比,该软件有点过时了。 这是backports进来的地方。

这样做也可以为您提供安全更新,否则您将自己照顾自己。

剩下的一个警告: j-bponginx当前版本是针对openssl 1.0.1构build的,也就是说,您将无法使用ALPN ,而是使用NPN ,因此您无法为Chrome用户提供HTTP/2服务,因为开发者最近放弃了对NPN支持,但是对于那些使用Firefox人来说却是有用的。 我在这里描述了一个解决方法。 如果你的两个人有可能再等上四个星期: j-bpo nginx将被重build为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 。 如果这个文件还不存在,请创build它。

  • 运行apt-get update

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