我是一名经验丰富的灯具开发人员,正在开发Rails.我有一个非常愚蠢的问题要问:Phusion乘客到底在做什么?

我读过很多文档,我用谷歌搜索过,我读过维基百科,我读过堆栈溢出.我甚至安装了它,并在开发机器上运行(使用Apache).但我还是不知道doing是多少.

这里有一个猜测:我认为Apache文档根指向/mywebapp/public/而不是/mywebapp/是很奇怪的,所以我认为这与让/mywebapp/中的所有内容都可以访问有关.(不过,这是一个疯狂的猜测,因为我不知道这些东西是如何被访问的.)

我已经收集到乘客是革命性的,开创性的,等等,但是它是什么呢!?

各位,很抱歉问了n00b这个问题.谢谢

推荐答案

Passenger是一个用于准备和启动Ruby实例的系统,用于基于框架的应用程序,如Ruby on Rails.Apache和nginx是两个受支持的web服务器平台,它们不能像PHP、Perl或Python那样运行Ruby,因为没有内置的Ruby模块可以像它们那样工作.这意味着Ruby倾向于作为一个独立的进程组运行,web服务器必须通过这些进程来 bootstrap 流量.

Rails倾向于作为一个持久进程运行,因为整个堆栈的启动时间非常长.乘客可以根据需要启动新实例,并删除不再需要的实例.您可以在流程列表中看到这一点,因为它们的前缀是"乘客"和"轨道".

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

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

乘客并不是完全革命性的,但它在一个非常方便的包装中包含了许多基本功能.它之所以如此伟大,是因为它工作得非常好,不需要太多关注.开箱即用,基本准备就绪.

Ruby-on-rails相关问答推荐

Rails Routing:在具有自己的路由的名称空间下组织路由

删除链接不起作用,重定向 echo 示 Ruby

nginx 中的 Rails 7 Active Storage - 图像中途停止加载 net::ERR_HTTP2_PROTOCOL_ERROR 200

select2 未应用于所有下拉列表;它只适用于数据的最后一条记录

多行与内联块之间的不同行为

无法加载此类文件 -- mysql2/mysql2

从 rails 5 迁移到 rails 6

Selenium chromedriver:无法从不可键入的键构造KeyEvent

在 Rails 中进行 Http 基本身份验证

NameError:未定义的局部变量或方法记录器

RSpec > 有没有办法用一个命令运行所有测试?

form_tag 是否与 Simple_form 一起使用?

Rails 3.1 在开发模式下非常慢,因为assets资源 ,怎么办?

设计自定义路由和登录页面

Rails:将所有未知路由重定向到 root_url

控制器 helper_method

如何对这个哈希数组进行分组?

如何在 VS Code 中自动格式化 Ruby 或 .erb 文件?

Rails:带参数的 URL/路径

用户注册时设计确认令牌无效