Ubuntu上Node.js服务器配置指南
在开始安装前,确保系统包是最新的,避免依赖冲突:
sudo apt update && sudo apt upgrade -y
Node.js需要通过包管理器或脚本安装,推荐使用NodeSource仓库获取最新稳定版(以Node.js 18.x为例):
# 添加NodeSource安装脚本
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
# 安装Node.js(包含npm)
sudo apt install -y nodejs
安装完成后,验证版本:
node -v # 查看Node.js版本(如v18.x.x)
npm -v # 查看npm版本(如10.x.x)
选择一个工作目录,创建项目文件夹并初始化:
mkdir my-node-server && cd my-node-server
# 初始化项目(生成package.json)
npm init -y
package.json文件记录了项目元数据和依赖,后续安装的模块会自动添加至此。
原生http模块功能有限,推荐使用Express简化开发:
npm install express --save
创建server.js文件,编写基础服务器代码:
const express = require('express');
const app = express();
const port = 3000;
// 定义路由
app.get('/', (req, res) => {
res.send('Hello World from Node.js with Express!');
});
// 启动服务器
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
node server.js
服务器启动后,终端会显示监听地址,访问http://localhost:3000即可看到响应。
PM2是Node.js进程管理器,可实现后台运行、自动重启、日志管理等功能:
# 全局安装PM2
sudo npm install -g pm2
# 启动应用(--name指定应用名称)
pm2 start server.js --name "my-node-app"
# 查看运行状态
pm2 list
# 其他常用命令
pm2 stop my-node-app # 停止应用
pm2 restart my-node-app # 重启应用
pm2 logs # 查看实时日志
若服务器启用了ufw防火墙,需开放应用端口(如3000):
sudo ufw allow 3000/tcp
sudo ufw enable # 启用防火墙(若未启用)
反向代理可将Node.js应用绑定到域名,并提供HTTPS支持。以下是基础配置步骤:
sudo apt install nginx
编辑默认站点配置(或创建新配置):
sudo nano /etc/nginx/sites-available/default
在server块中添加反向代理规则(替换your_domain.com为你的域名/IP):
server {
listen 80;
server_name your_domain.com;
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 nginx -t # 检查配置语法
sudo systemctl restart nginx
使用Let’s Encrypt免费获取SSL证书,实现HTTPS:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your_domain.com # 按提示操作
证书会自动配置到Nginx,无需手动修改配置文件。
以上步骤覆盖了Ubuntu上Node.js服务器的基础配置,包括安装、项目创建、进程管理及反向代理。生产环境中,建议结合PM2、Nginx和SSL证书,确保应用的稳定性、性能和安全性。