- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是一名经验丰富的 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/
我使用以下命令安装了 Phusion Passenger sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CA
我已经调试了一天多了,没有运气, 安装 ruby、gems 和 Passenger 后,我尝试启动 Passenger,但我一直收到“找不到乘客”: passenger@dragon:/usr/w
基本上,我的路线运行完美,乘客似乎正在加载 - 一切都很好。除了没有 Railsy 发生。这是我从启动服务器到第一个请求的 Nginx 日志(忽略不同的域/路由 - 这是因为我还没有移动新域,并且它返
如果我通过以下方式安装 passenger 包: $ sudo apt-get install libapache2-mod-passenger 我还需要运行吗: $ passenger-inst
我在安装了 Passenger 和 Nginx(带有 Passenger 模块)的生产服务器上安装了一个 Rails 应用程序。但是,当我运行 rvmsudo passenger-status 时,它
这是一个在 Phusion Passenger 上运行的 Rails 应用。 在开发环境(乘客独立模式)中,我在基于 Vagrant Ubuntu 14.04 的机器上运行它,在 MBP(工作)和 L
http://nodejs-resume.developmentserver.me/ 当网站加载时, /usr/local/dh/passenger/helper-scripts/node-loade
如果我在 enterprise passenger 中配置滚动重启,然后触摸 restart.txt,我如何以编程方式检查该过程是否已完成并可以保证不再提供旧版本? 最佳答案 我知道自问这个问题以来已
我有一个 sinatra 应用程序,其页面显示有关该应用程序的一些信息。其中一些是通过在页面加载时运行命令生成的。在 unicorn 中运行时,我的 MacBook 上一切正常,在 unicorn 中
我很难弄清楚如何使用 rbenv连同 passenger .我在运行 debian 6 ,所以我安装了 passenger来自 oss-binaries.phusionpassenger.com存储库
Phusion Passenger 的 Apache 模块安装在哪里?我想调整“Configuring Phusion Passenger”中的一些配置值。 我不知道这个配置文件在哪里。我已经按照 N
TL; DR =无法让Passenger / Nginx从Django调用我们的应用程序。 “passenger-status”未显示当前运行的非Docker服务器中显示的正确应用程序组。 尝试将运行
我试图了解 Passenger Nginx 如何处理并发请求。我重新加载了一个页面并查看了生产日志。每次页面都会向服务器同时发送多个 ajax 请求。有一些任务需要昂贵的数据库查询,称为“status
我在我的 Linode 服务器上使用 Apache + Passenger,使用 Postgresql-9.4 数据库。每隔一段时间,我就会收到以下错误,但它是不可预测的,并且在几分钟后没有采取任何措
来了:我有一个在 RedHat 服务器上运行的 Rails 应用程序。我使用 Passenger Standalone v3.0.19 来提供服务。数据库是MySQL。最近我发现一些Passenger
我正在使用 nginx 和 Phusion Passenger 来引导加载 ruby on rails 应用程序,如果我像这样运行应用程序 rails s -e production 它确实正确连
我想使用 apache 和 passenger 将我的应用程序部署到我的本地服务器中。我安装了所有先决条件,如开发库和 passenger gem。然后我将这些行包含到我的/etc/apache2/h
我有一个使用 Phusion passenger + Apache 网络服务器部署的 Ruby on Rails 应用程序。每个请求是否都在由 Phusion Passenger 生成的自己的线程中运
我遇到了一个问题,无论我尝试什么,所有乘客实例都会在空闲期(5 分钟,但有时更长)后被销毁。我已阅读 Stack Overflow 上的乘客文档和相关问题/答案。 我的全局配置如下所示: Passen
我正在尝试通过运行以下命令来自动化 nginx/passenger 安装程序: passenger-install-nginx-module --auto --auto-download --extr
我是一名优秀的程序员,十分优秀!