gpt4 book ai didi

ruby-on-rails - Phusion Passenger(傻瓜专用!)

转载 作者:行者123 更新时间:2023-12-03 07:19:15 27 4
gpt4 key购买 nike

我是一名经验丰富的 LAMP 开发人员,即将进入 Rails。我有一个非常愚蠢的问题要问:Phusion Passenger 到底是做什么的?

我读过很多文档,我用 Google 搜索过,我读过 Wikipedia,我读过 Stack Overflow。我什至已经安装了它并让它在开发机器上运行(使用 Apache)。但我仍然不知道它实际上在做什么。

这是一个猜测:我认为 Apache 文档根指向 /mywebapp/public/ 而不是 /mywebapp/ 很奇怪,所以我认为它必须这样做使 /mywebapp/ 内的所有内容均可访问。 (不过,这是一个疯狂的猜测,因为我不知道这些东西是如何被访问的。)

我认为 Passenger 是革命性的、开创性的等等,但它有什么作用?!?

抱歉大家提出了这个问题。谢谢!

最佳答案

Passenger 是一个用于准备和启动 Ruby 实例的系统,以便与基于 Rack 的应用程序(例如 Ruby on Rails)一起使用。 Apache 和 nginx 这两个受支持的 Web 服务器平台无法像 PHP、Perl 或 Python 一样运行 Ruby,因为没有内置的 Ruby 模块可以像这些模块一样工作。这意味着 Ruby 倾向于作为一组独立的进程运行,Web 服务器必须通过这些进程引导流量。

Rails 倾向于作为持久进程运行,因为整个堆栈的启动时间很长。 Passenger 根据需要启动新实例,并将杀死不再需要的实例。您可以在进程列表中看到这一点,因为它们清楚地标有“Passenger”和“Rails”前缀。

Passenger 的一个功能是它将重用 Rails 堆栈的一部分,以便更快地创建其他进程,克隆一个实例,而不是从头开始启动一个新实例。该加载程序是用 C++ 编写的,可以尽可能高效地正确配置和启动每个 Ruby 进程,还可以通过在不同进程之间共享内存来帮助节省内存。

将内容托管在 public/ 目录之外的原因是为了避免暴露您的应用程序代码库。 PHP 需要正确配置,以防止人们简单地浏览目录和下载源代码,因为静态内容和可执行脚本之间没有具体区别。例如,配置错误的服务器会很乐意提供原始 .php 文件而不是运行它们。

Passenger 并不完全是革命性的,但它确实在一个非常方便的包中融入了许多基本功能。它之所以如此伟大,是因为它运作良好并且不需要太多关注。开箱即用,几乎可以使用。

关于ruby-on-rails - Phusion Passenger(傻瓜专用!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6155399/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com