Linux 上部署 Node.js 项目:从环境准备到 Nginx 反向代理的完整流程
时间:2026-08-23 | 作者:冻月看渠 | 阅读:0在Linux上部署Node.js项目,其实并没有想象中那么复杂。只要把几个关键环节理顺了,整个过程就能流畅推进。下面我们就从最基础的环节开始,一步步拆解。
环境准备:先把地基打牢
首先,确保你的Linux服务器上已经安装了Node.js和npm。如果还没装,可以用下面这条命令快速搞定:
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
另外,有些项目在构建过程中需要C/C++编译工具,所以顺手把build-essential也装上,避免后续踩坑:
sudo apt-get install build-essential
上传项目:把代码送到服务器上
代码准备好之后,需要把它传到服务器。常用的方法有FTP、SCP,或者直接用rsync。如果只是小项目,SCP就够用了:
scp -r 你的项目目录 用户名@服务器IP:/目标路径
上传完成后,记得登录服务器确认文件都在。
安装依赖:让项目跑起来的第一步
进入项目目录,执行:
npm install
这条命令会读取package.json,把所有依赖都装好。如果遇到权限问题,可以试试用npm install --unsafe-perm,或者干脆用普通用户操作。
配置环境变量:把敏感信息藏起来
很多应用需要数据库连接字符串、API密钥之类的环境变量。直接在代码里写死显然不安全,正确的做法是在服务器上设置。比如在~/.bashrc或~/.bash_profile里添加:
export NODE_ENV=production
export DATABASE_URL=mongodb://user:password@host:port/dbname
然后让配置生效:
source ~/.bashrc
也可以把环境变量写到项目根目录下的.env文件里,配合dotenv包自动加载,这样更灵活。
启动应用:让代码真正跑起来
最直接的方式就是:
node app.js
但这样做有个问题——一旦退出终端,应用就停了。为了保持应用持续运行,推荐使用进程管理器,比如PM2:
npm install pm2 -g
pm2 start app.js --name "my-app"
PM2自带日志管理、自动重启、负载均衡等功能,非常实用。如果想让应用开机自启,还可以用pm2 startup生成系统服务。
配置反向袋里:让外部能访问你的应用
如果希望用户通过80或443端口直接访问你的Node.js应用,通常需要加一个反向袋里服务器,比如Nginx。下面是一个典型的配置:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
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;
}
}
把这个配置文件保存到/etc/nginx/sites-a vailable/example.com,然后创建一个符号链接到sites-enabled:
sudo ln -s /etc/nginx/sites-a vailable/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
如果配置没报错,重启Nginx后,你的应用就能通过域名访问了。
安全性和监控:别让应用裸奔
部署完成后,别忘了做安全加固。比如用ufw配置防火墙,只开放必要端口;安装SSL证书(推荐Let's Encrypt),让网站支持HTTPS;定期更新系统和依赖包。
监控方面,可以用PM2自带的pm2 monit查看CPU和内存占用,或者接入专业工具如New Relic、Datadog。不过对大多数小项目来说,PM2的监控已经够用了。
以上就是一个相对完整的部署流程。当然,根据项目不同,你可能还需要调整数据库连接、静态文件处理、日志切割等细节。但掌握了这些核心步骤,后续的优化不过是锦上添花。
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- Linux服务器安装配置vsftpd完整教程
- 时间:2026-08-31
-
- Linux下使用Perl编写HelloWorld完整教程
- 时间:2026-08-27
-
- Linux系统中Rust的跨平台兼容性深度解析
- 时间:2026-08-27
-
- Rust在Linux容器化技术中的应用:从极简运行时到内核安全
- 时间:2026-08-27
-
- Linux下Rust并发处理:安全与高效的融合实践
- 时间:2026-08-27
-
- Linux下Rust代码审查实战:从Clippy到CI/CD自动化
- 时间:2026-08-27
-
- Linux下Rust异步编程实战:async-std与Tokio详解
- 时间:2026-08-27
-
- Linux系统中Rust配置CI/CD完整指南
- 时间:2026-08-27
精选合集
更多大家都在玩
大家都在看
更多-
- 糖尿病完全不能吃糖吗
- 时间:2026-09-15
-
- 蚂蚁庄园小课堂2026年9月16日最新题目答案
- 时间:2026-09-15
-
- 小鸡答题今天的答案是什么2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园每日答题答案2026年9月16日
- 时间:2026-09-15
-
- 以下哪种粮食是酿造绍兴黄酒的主要原料 蚂蚁庄园今日答案9月16日
- 时间:2026-09-15
-
- 劝学名句“及时当勉励,岁月不待人”出自哪位诗人 蚂蚁庄园今日答案9.16
- 时间:2026-09-15
-
- 蚂蚁庄园今天答题答案2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园答题今日答案2026年9月16日
- 时间:2026-09-15
