「Phusion Passenger」- 应用服务器 @20210506

问题描述

很多时候,当我们解决 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)……

相关文章

「Tomcat」- 杂记
「http-load」
「阿里云负载均衡」- ALB, CLB, SLB
「Nginx」- 屏蔽所有搜索引擎
「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


posted @ 2021-05-06 16:50  研究林纳斯写的  阅读(103)  评论(0编辑  收藏  举报