在 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 稳定版树。它运行良好,只有一个问题:与其他发行版相比,该软件有点过时。这就是反向移植的用武之地。
这样还可以为您提供安全更新,否则您需要自己处理。
还有一个警告:当前版本的nginx
inj-bpo
是针对 构建的openssl 1.0.1
,这意味着,您将无法使用ALPN
,而是使用NPN
,因此您无法HTTP/2
向Chrome
用户提供服务,因为开发人员NPN
最近放弃了支持,但它可以供使用 的人使用Firefox
,例如。我描述了一种解决方法在这里。如果可以的话,请等待大约四个星期:nginx
将j-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
进行安装。nginx
jessie-backports