Nodejs应用新支持:Passenger 现在支持node.js应用啦

Nodejs应用新支持:Passenger 现在支持node.js应用啦

以前做这一部分需要forever run, cluster,或者nginx reverse proxy,都很麻烦,现在用Passenger真的是省心省力啊! Passenger 4.0.15开始支持

6 回复

Nodejs应用新支持:Passenger 现在支持node.js应用啦

以前我们部署Node.js应用时,通常需要使用一些工具如forevercluster或配置Nginx作为反向代理来确保应用的稳定运行。这些方法虽然有效,但配置起来相对繁琐且容易出错。

不过,现在有一个好消息:Phusion Passenger 开始支持Node.js应用啦!从版本 4.0.15 开始,Passenger 已经能够无缝地管理Node.js应用,简化了部署流程,使得开发者可以更专注于业务逻辑而不是运维细节。

为什么选择Passenger?

  • 简单易用:无需复杂的配置文件,只需简单的命令即可启动和管理Node.js应用。
  • 资源利用率高:Passenger能够智能地管理进程和内存,确保你的应用高效运行。
  • 高可用性:自动重启失败的进程,并提供负载均衡功能。

安装与配置

首先,你需要安装Passenger。你可以通过以下命令快速安装:

# 对于Ubuntu/Debian系统
sudo apt-get update
sudo apt-get install -y nginx-extras passenger

# 对于CentOS/RHEL系统
sudo yum install epel-release -y
sudo yum install nginx-passenger -y

接下来,你需要在Nginx中启用Passenger模块。编辑Nginx配置文件(通常是/etc/nginx/nginx.conf),添加以下内容:

http {
    ...
    passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
    passenger_ruby /usr/bin/passenger_free_ruby;

    server {
        listen 80;
        server_name your_domain.com;

        # 配置静态文件目录
        root /path/to/your/app/public;

        # 启动Node.js应用
        passenger_enabled on;
        passenger_nodejs /usr/bin/node;  # 指定Node.js可执行文件路径
    }
}

最后,重新加载Nginx配置以使更改生效:

sudo service nginx reload

示例代码

假设你有一个简单的Express应用,位于/path/to/your/app目录下。确保该目录包含一个server.js文件,内容如下:

const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.send('Hello, Passenger!');
});

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
    console.log(`Server is running on port ${PORT}`);
});

将此应用部署到Passenger后,你就可以通过浏览器访问http://your_domain.com,看到“Hello, Passenger!”的欢迎信息了。

通过使用Passenger,部署Node.js应用变得更加轻松和可靠。希望这篇指南能帮助你顺利迁移和部署你的应用。


Passenger 收费版本才支持…

免费版支持的,已经试出来了

楼主出个攻略哈哈

用过ruby的,不过nodejs部署很方便的说

Nodejs应用新支持:Passenger 现在支持node.js应用啦

大家好!从Passenger 4.0.15版本开始,Node.js应用得到了官方支持。这真是一个好消息,因为之前我们需要使用forevercluster模块或者Nginx反向代理来管理Node.js应用,这些方法都比较复杂且难以维护。

现在,通过Passenger,我们可以更简单地部署和管理Node.js应用。以下是如何使用Passenger来部署Node.js应用的步骤:

安装Passenger

首先,你需要在你的服务器上安装Passenger。以Ubuntu为例,可以使用以下命令进行安装:

sudo apt-get install -y dirmngr gnupg
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
sudo apt-get install -y apt-transport-https ca-certificates
echo "deb https://oss-binaries.phusionpassenger.com/apt/passenger $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/passenger.list
sudo apt-get update
sudo apt-get install -y nginx-extras passenger

配置Nginx

接下来,配置Nginx以使用Passenger模块。编辑Nginx的配置文件(通常位于/etc/nginx/nginx.conf/etc/nginx/sites-available/default),添加以下内容:

server {
    listen 80;
    server_name example.com;

    root /path/to/your/app;
    index index.js;

    passenger_enabled on;
    passenger_app_type node;
    passenger_startup_file app.js;
}

/path/to/your/app替换为你的Node.js应用的实际路径,并将app.js替换为你的入口文件名。

运行应用

启动Nginx服务以加载新的配置:

sudo service nginx restart

现在,你的Node.js应用应该可以通过浏览器访问了。

示例代码

假设你有一个简单的Node.js应用(app.js):

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

只需确保这个文件位于Nginx配置中指定的目录下即可。

总结

通过使用Passenger,你可以更轻松地管理和部署Node.js应用,而无需担心复杂的配置和维护问题。希望这个教程对你有所帮助!

回到顶部