1.14 以上的 Nginx 版本是否已弃用 Passenger?

问题描述 投票:0回答:1

我在

1.14
上将 nginx 从版本
1.18 (Ubuntu)
更新到
Ubuntu 18.04

这样做似乎会破坏乘客。所以我卸载并尝试通过 Passenger 安装 Ubuntu 18.04 说明.

重新安装 Open Source Passenger 版本

我到了这条线:

sudo apt-get install -y libnginx-mod-http-passenger

抛出这个错误

libnginx-mod-http-passenger :取决于:nginx-common(< 1.14.1) but 1.18.0-3ubuntu1+bionic1 is to be installed

Update 我也尝试过企业版。按照企业版安装说明,收到类似的错误信息:

libnginx-mod-http-passenger-enterprise :取决于:nginx-common(< 1.14.1) but 1.18.0-3ubuntu1+bionic1 is to be installed

我确实尝试研究这个问题,我在 Phusion 的 GitHub 上发现了这个问题以及这个最近的问题。似乎大多数人正在做的是将他们的 nginx 版本回滚到

1.14
.

nginx passenger passenger-nginx
1个回答
4
投票

它没有被弃用,没有。问题是您尝试安装的打包模块是为通过系统默认存储库分发的旧 Nginx 版本制作的。这出现在您提到的安装指南中:

此时我们假设您已经从系统存储库安装了Nginx。

这意味着假设您安装了特定版本的 Nginx(在您的情况下为

1.14.0
),为此构建了打包模块。 新乘客文件中强调了这一点:

如果你想使用我们打包的 Nginx 模块,你必须使用你的发行版提供的 Nginx 包。例如,如果你有 NGINX 设置提供的 repo,你将需要 编译一个与 Nginx 兼容的动态模块

最后一个引用中的链接将带您进入有关如何编译动态乘客模块并在 Nginx 配置中启用它的指南。我不会重复整个过程以保持简短的答案,但一般方法是这样的:

  1. 获取 Nginx 源代码的乘客模块。
  2. 为您安装的版本获取 Nginx 源代码。
  3. 使用 passenger 模块编译 Nginx:
cd /path-to-nginx-source-dir
./configure --prefix=/opt/nginx \
  --with-some-configure-flag \
  --add-dynamic-module=$(passenger-config --nginx-addon-dir) \
  --add-module=/path-to-some-other-nginx-module
make
sudo make install
  1. 通过将此行添加到
    nginx.conf
    :
  2. 让 Nginx 加载模块
load_module modules/ngx_http_passenger_module.so;

就个人而言,我宁愿选择“nginx-behind-nginx”方法,也不愿构建模块。那就是你有任何你喜欢的 Nginx 版本,但它作为另一个 Nginx 的反向代理运行,启用了 passenger (Passenger Standalone)。由于对性能的影响不明显,这将更容易维护(安装、更新)。有关详细信息,请参阅此指南

© www.soinside.com 2019 - 2024. All rights reserved.