原文地址:【Phusion Passenger】应用服务器(永久地址,保存网址不迷路 )
很多时候,当我们解决 A 问题时,会无意发现 B 工具。或许该工具与解决 A 问题完全无关,但是我们还是选择简单了解该工具,增加自己的知识储备,开阔视野。
其实我们也想不到,在解决内存占用过高问题时会发现 Web 应用部署工具,这只能说明我们不专心。
该笔记将记录:什么是 Phusion Passenger 以及简单案例让我们快速了解 Phusion Passenger 的使用方法。
很显然这是段 Nginx 配置,并存在未知的 passenger_* 配置行,这里也很明显与 NodeJS 有关系:
server { listen 80; server_name yourserver.com; # Tell Nginx and Passenger where your app's 'public' directory is root /path/to/app/public; # Turn on Passenger passenger_enabled on; # Tell Passenger that your app is a Node.js app passenger_app_type node; passenger_startup_file app.js; }
如果想以传统的方式部署 NodeJS 应用,我们需要:
1)运行 node app.js 启动运行(还要考虑服务的管理、自动启动等等)
2)然后,再配置 Nginx proxy_pass 转发,以及相关参数配置;
而使用 Passenger 则会更容易操作,仅需要:
1)为 Nginx 安装 Passenger 模块;
2)然后,在 nginx.conf 中添加应用相关的配置;
2)最后,启动 Nginx 服务,而应用也随之启动;
这正式 Passenger 吸引我们的地方,它简化我们对 Web 应用的管理方式。
而 Passenger 不单单如此,它还有很多其他特性:
1)支持 Python NodeJS Ruby 语言;
2)安全强化,能够预防常见攻击;
3)应用监控,监控应用程序性能、崩溃、挂起、内存泄漏等等问题;
4)问题分析,通过请求检查、回溯转储 CPU 和内存状态来解决应用程序问题;
5)……
「Tengine」 - 与 Nginx 版本的对应关系
「Nginx」- 变量 $request uri 与 $uri 对比
「Nginx」- 管理与配置
「Corosync」
「Squid」
「Nginx」- 在日志路径中,使用变量
Deploying a Node.js application - Nginx - Passenger Library
phusion/passenger: A fast and robust web server and application server for Ruby, Python and Node.js
Passenger - Enterprise grade web app server for Ruby, Node.js, Python