Home在线笔记

上传或选择Markdown文件,实时查看解析后的HTML效果

登录

文件上传

📄

拖放Markdown文件到此处,或点击上传

上传路径:

Manual目录中的文件

专题目录

《Node app开发及Nginx发布环境部署》预览

文档样式:

Node app开发及Nginx发布环境部署

在 Ubuntu 系统上配置 Nginx 作为 Node.js 应用的反向代理,可以让你将 Nginx 设置为前端服务器,它将接收外部请求并将这些请求转发给后端的 Node.js 应用。以下是详细的步骤来配置 Nginx 以实现这一功能。

步骤 1: 安装 Node.js 和 Nginx

首先,确保你的系统上安装了 Node.js 和 Nginx。你可以使用以下命令来安装它们:

更新包列表
sudo apt update

安装 Node.js 和 npm
sudo apt install nodejs npm

安装 Nginx
sudo apt install nginx

步骤 2: 启动并启用 Nginx 服务

安装完成后,启动并启用 Nginx 服务:

启动 Nginx
sudo systemctl start nginx

设置 Nginx 开机自启
sudo systemctl enable nginx

步骤 3: 创建 Node.js 应用

你可以使用任何你喜欢的框架(如 Express)来创建一个简单的 Node.js 应用。这里是一个使用 Express 的示例:

创建一个新的 Node.js 项目目录
mkdir my-node-app
cd my-node-app

初始化 npm 项目
npm init -y

安装 Express
npm install express

创建一个简单的 Express 应用 (app.js)
nano app.js

app.js 中写入以下代码:

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

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

app.listen(port, () => {
  console.log(`Node.js app listening at http://localhost:${port}`);
});

步骤 4: 配置 Nginx 作为反向代理

编辑 Nginx 的配置文件,通常位于 /etc/nginx/sites-available/default 或创建一个新的配置文件:

sudo nano /etc/nginx/sites-available/my-node-app

在文件中添加以下配置:

server {
    listen 80; 或者你选择的端口号,例如 8080 或其他端口号,如果你不想使用80端口,记得在防火墙中开放该端口。
    server_name your_domain_or_IP; 你的域名或服务器IP地址,如果是本地测试可以使用 localhost 或 IP地址。
    location / {
        proxy_pass http://localhost:3000; 这里是 Node.js 应用的地址和端口。
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

保存并关闭文件。然后,重启 Nginx 以应用更改:

sudo systemctl restart nginx

步骤 5: 运行 Node.js 应用并测试配置

在后台运行你的 Node.js 应用:

node app.js &

或者使用 pm2(一个更强大的进程管理工具)来管理你的 Node.js 应用:

npm install pm2 -g 全局安装 pm2(如果尚未安装)
pm2 start app.js 使用 pm2 启动应用。这样你可以更容易地管理你的应用。例如重启、停止等。

现在,你应该可以通过浏览器访问 http://your_domain_or_IP 来看到你的 Node.js 应用通过 Nginx 反向代理的响应了。如果你使用的是本地测试,确保你的防火墙设置允许访问你选择的端口(例如80或8080)。如果使用的是非标准端口,你可能需要在浏览器中指定完整的 URL(如 http://localhost:8080)。