https://www.phusionpassenger.com/docs/tutorials/what_is_passenger/


What is Passenger?

一个开源的web程序服务。它除了HTTP请求,管理进程和资源,能够administration, monitoring,并进行问题诊断。

容易使用,让产品的部署变得容易和scalable(

if a piece of computer hardwareor software is scalable, it continues to work well even if it is made bigger or connected to a larger number of other pieces of equipment

)即使程序逐步变大仍然运行良好。

它支持多种编程语言,Ruby, Python, Node。

它也能同时服务多个程序。

https://www.phusionpassenger.com/advantages   (图文简介,很有趣,把自己比做航天器,功能强大,让passengers轻松使用)

Fundamental concepts

关于Ruby的。

Passenger and "rails server"

ROR框架提供一个内建的服务器工具, 让可以使用rails server命令。但"rails server"本身不是一个app server,而是一个小的wrapper,在一个app server内,发射你的app。

这就是人们不使用"rails server"在production的原因。他们直接地使用一个应用程序服务an application server,比如Passenger。

"rails server" uses Puma by default as of Rails 5.

如果你增加Passenger到你的Gemfile(点击看step by step), “rails server”会发射Passenger替代Puma。当然也可以直接选择launch Passenger 。

How Passenger fits in the stack

当部署web app到production, 有各种类型的组件be involved(参与)。

你可能听说过Unicorn, Puma, Nginx, Apache and Capistrano.

Passenger当和其他组件合作时,会取代一些组件。Passenger replaces some components, while collaborating with other components.

In a typical production stack, one would use Nginx or Apache as the web server, Passenger as application server, and Capistrano as release automation tool. Passenger integrates with Nginx or Apache and manages the application and its resources.

在一个典型的产品堆,一个将使用Nginx/Apache作为web服务器, Passenger作为app服务器,Capistrano作为版本释放的自动化工具。Passenger集成了Nginx/Apache并管理app和它的resources.

需要联合使用Nginx or Apache的原因:(2个)

web servers. 提供HTTP transaction 处理和服务静态的文件。

1.但是,它们不是Ruby app 服务器,不能直接的跑Ruby app.

所以需要联合一个app 服务器,例如Passenger.

Application servers make it possible for Ruby apps to speak HTTP.

app服务器可以让Ruby apps理解并使用HTTP语法。Ruby apps(如Rails)它们自身做不到这点。

2.另一方面,app server明显不能像Nginx/Apache那样高效的处理HTTP请求。

魔鬼在细节里:

Nginx/Apache更善于处理I/O安全, HTTP并发concurrency管理, timeout超时连接等等!!!

因此,在产品环境内,程序服务器app server和Nginx/Apache联合起来被使用。

Capistrano

一个应用程序 release automation tool! (释放版本时,自动化处理一系列actions的工具)。

当释放一个你的web application的新版本时,会有actions需要被执行performed, 如uploading你的程序代码到服务器, 运行一条命令来安装你的gem bundle,重启进程等等。Capistrano会自动化这些actions.

Capistrano不能取代一个server来提供HTTP transaction handling, 所以它联合app servers和web servers。

Unicorn and Puma

可选的app servers。被Passenger代替了。

因为,Passenger让使用更方便,和其他组件集成,自动管理和问题诊断diagnosis.

Multiple integration mode 多重集成模型

之前讲了Passenger和其他组件合作。因此它支持多重集成模型。

下面只会涉及Standalone mode。 Nginx/Apache集成模型在deployment tutorial会讲解。

在Standalone mode, Passenger使用内建web server。在Nignx/Apache集成模型,Passenger和Nignx/Apache集成。

Standalone mode

这个模型,不和其他组件合作。在development阶段,可以使用这个模型。

Nginx integration mode

这个模型,Passenger作为一个Nginx模块来操作。

绝大多数情况下是通过Nginx和通过Nginx配置文件,来操作Passenger。

因此可以把它们当成一个整体。

这个模型用于production,不是development。

What Passenger does not do

  1. 不能建立一个带操作系统的服务器。Passenger假设你已经有一个服务器和工作的操作系统。Passenger不是一个hosting service主机服务。
  2. 不能安装Ruby。想要在Passenger上运行Ruby,你必须先安装Ruby。你需要告诉Passenger你在哪安装了Ruby。
  3. 不能传输app code和file到server。 你需要使用如Capistrano之类的工具。Passenger假定app code和文件已经在server上了。
  4. 不能安装应用依赖。 这些工作属于Bundler和Capistrano。
  5. 不能管理数据库。如果你的系统需要一个数据库,你必须自己安装。

部署:

转载于:https://www.cnblogs.com/chentianwei/p/9886020.html

Passenger简介相关推荐

  1. oracle 表跟踪,Oracle表变化趋势追踪记录

    #DBA_HIST_SEG_STAT可以看出对象的使用趋势,构造如下SQL查询出每个时间段内数据库对象的增长量,其中DB_BLOCK_CHANGES_DELTA为块个数 select c.SNAP_I ...

  2. Java 依赖注入标准(JSR-330)简介

    Java 依赖注入标准(JSR-330)简介 转载请保留作者信息: 作者:88250 ,Vanessa 时间:2009 年 11 月 19 日 Java 依赖注入标准(JSR-330,Dependen ...

  3. Dataset:titanic泰坦尼克号数据集/泰坦尼克数据集(是否获救二分类预测)的简介、下载、案例应用之详细攻略

    Dataset:titanic泰坦尼克号数据集/泰坦尼克数据集(是否获救二分类预测)的简介.下载.案例应用之详细攻略 目录 titanic(泰坦尼克号)数据集的简介 1.titanic数据集各字段描述 ...

  4. Dataset:New York City Taxi Fare Prediction纽约市出租车票价预测数据集的简介、下载、使用方法之详细攻略

    Dataset:New York City Taxi Fare Prediction纽约市出租车票价预测数据集的简介.下载.使用方法之详细攻略 目录 New York City Taxi Fare P ...

  5. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理

    1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...

  6. Docker学习(一)-----Docker简介与安装

    一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...

  7. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  8. TensorRT简介

    TensorRT 介绍 引用:https://arleyzhang.github.io/articles/7f4b25ce/ 1 简介 TensorRT是一个高性能的深度学习推理(Inference) ...

  9. 谷粒商城学习笔记——第一期:项目简介

    一.项目简介 1. 项目背景 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O B2B 模式(Business to Business),是指商家和商家建立的商业关系.如阿里巴巴 B ...

  10. 通俗易懂的Go协程的引入及GMP模型简介

    本文根据Golang深入理解GPM模型加之自己的理解整理而来 Go协程的引入及GMP模型 一.协程的由来 1. 单进程操作系统 2. 多线程/多进程操作系统 3. 引入协程 二.golang对协程的处 ...

最新文章

  1. ERROR in multi ./src/main.js dist/bundle.js
  2. 2021中国垂类电竞KOL发展洞察行业报告
  3. 太赞了!刷题PDF终于在GitHub上开源了!覆盖字节、蚂蚁、腾讯等多家大厂真题...
  4. ftp lftp 客户端设置_网络客户端工具—ftp、lftp、wget
  5. CentOS和Ubuntu区别
  6. Linux 中的包管理器是什么?它是如何工作的?
  7. GDI绘制矩形缺少右边和底部边界线问题
  8. Emmet的高级功能与使用技巧
  9. 强制换行的css属性
  10. 1.3 VS2015安装教程
  11. (原创)骑士人才系统(74CMS) 阿里短信接口 不影响后续升级
  12. 【动力学】汽车性能仿真系统含Matlab源码
  13. JavaScript实现大数据(条形统计图表)
  14. 基于ssm实验室管理系统mysql
  15. oracle ogg是什么
  16. bat获取管理员权限运行
  17. 内存管理Memoryamp;nbsp;OC——第九天
  18. 版本管理·玩转git(团队合作)
  19. Thinksystem本地制作BOMC刷新SR650 升级到指定版本微码
  20. SSM+网上书店管理系统 毕业设计-附源码082255

热门文章

  1. 全民投资人游戏服务器维护,欢乐园《全民仙战》3月5日14时合服公告
  2. sinkhorn algorithm
  3. 怎么进行finebi下载
  4. 计算机硬盘换,电脑硬盘可以随便换吗
  5. homepod换wifi网络_HomeKit的最佳入口——HomePod使用体验
  6. 用大数据把电视观众“挖”出来
  7. Adobe Illustrator CS5 快捷键大全
  8. 详解win10系统还原点怎么设置
  9. Linux简介和各发行版介绍
  10. centos7 yum升级curl