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

kh212irz  于 2023-04-05  发布在  Nginx
关注(0)|答案(1)|浏览(139)

我在Ubuntu 18.04上更新了nginx从1.14版本到1.18 (Ubuntu)
这样做似乎会破坏乘客。所以我卸载并试图通过Passenger installation Ubuntu 18.04 instructions重新安装开源乘客版本。
我到了这一行:

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

它抛出这个错误
libnginx-mod-http-passenger:取决于:nginx-common(〈1.14.1)但1.18.0- 3ubuntu 1 + bionic 1将被安装

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

libnginx-mod-http-passenger-enterprise:取决于:nginx-common(〈1.14.1)但1.18.0- 3ubuntu 1 + bionic 1将被安装
我确实试图研究这个问题,我发现了this issue on Phusion's GitHubthis more recent issue。似乎大多数人正在做的是将他们的nginx版本回滚到1.14

wnavrhmk

wnavrhmk1#

问题是,您尝试安装的打包模块是为通过系统默认存储库分发的较旧的Nginx版本制作的。这出现在您提到的installation guide中:
在这一点上,我们假设你已经从你的***系统***仓库安装了Nginx。
这意味着,假设您安装了特定版本的Nginx(在您的案例中为1.14.0),打包的模块是为该版本构建的。这在new passenger documentation中强调:
如果你想使用我们打包的Nginx模块,你必须使用你的发行版提供的Nginx包。例如,如果你有NGINX安装程序提供的repo,你将需要编译一个与该Nginx兼容的动态模块。
最后一个引用中的链接将带您到如何编译动态乘客模块并在Nginx配置中启用它的指南。我不会重复整个过程以保持答案简短,但一般方法是这样的:
1.获取Nginx的乘客模块源代码。
1.获取您已安装版本的Nginx源代码。
1.使用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加载模块,将这一行添加到nginx.conf

load_module modules/ngx_http_passenger_module.so;

就个人而言,我宁愿选择'nginx-behind-nginx'方法而不是构建模块。也就是说,您可以使用任何您喜欢的Nginx版本,但它作为另一个启用乘客的Nginx的反向代理运行(乘客独立)。由于对性能的影响不明显,这将更容易维护(安装,更新)。有关详细信息,请参阅guide

相关问题