【Phusion Passenger】应用服务器

卜高超
2023-12-01

原文地址:【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

 类似资料: