服务器部署Node.js项目指南
一、准备工作

1、购买云服务器:
选择适合的服务提供商,如腾讯云或阿里云。
根据项目需求选择合适的配置,例如2核4G的轻量服务器。
2、域名注册与备案:
注册一个合适的域名。
在服务商处进行域名备案,确保域名可以在国内合法访问。
3、购买和配置服务器:

完成服务器的购买后,记录下公网IP、用户名和密码。
使用SSH工具(如XShell)连接至服务器。
二、服务器环境配置
1、更新系统软件:
sudo yum update -y
2、安装Node.js:
推荐使用NVM(Node Version Manager)来管理多个Node.js版本。
curl -ohttps://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.bashrc
nvm install node
或者直接下载二进制文件并创建软链接。

wget https://nodejs.org/dist/v16.10.0/node-v16.10.0-linux-x64.tar.xz
tar -xf node-v16.10.0-linux-x64.tar.xz
sudo ln -s /root/node-v16.10.0-linux-x64/bin/node /usr/local/bin/node
sudo ln -s /root/node-v16.10.0-linux-x64/bin/npm /usr/local/bin/npm
3、安装PM2:
npm install pm2@latest -g pm2 list
4、安装Nginx:
sudo yum install epel-release sudo yum install nginx systemctl start nginx
5、配置防火墙:
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent sudo firewall-cmd --reload
三、项目上传与配置
1、项目打包:
npm run build
2、上传文件到服务器:
可以使用FTP工具(如FileZilla)或SCP命令将打包后的文件上传至服务器。
上传目录建议为/home/你的用户名/your_project。
3、安装项目依赖:
cd /home/你的用户名/your_project npm install
4、配置PM2启动项目:
pm2 start npm --name your_project -run start pm2 startup pm2 save
四、数据库配置与迁移
1、本地数据库导出:
使用Navicat或其他工具导出数据库文件。
2、远程数据库导入:
在服务器上创建数据库,并导入SQL文件。
mysql -u root -p your_database < your_dump_file.sql
五、Nginx配置反向代理
1、进入Nginx配置目录:
cd /etc/nginx/conf/nginx.conf
2、修改配置文件:
在server块中添加以下内容,用于反向代理Node.js应用。
server {
listen 80;
server_name your_domain.com;
location / {
proxy_pass http://127.0.0.1:3000; # Node.js应用端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
3、重启Nginx服务:
systemctl restart nginx
六、测试与验证
1、检查Node.js进程:
pm2 list
2、访问项目:
在浏览器中输入你的域名,查看是否能正常访问项目。
确保前端资源正确加载,接口能正常调用。
七、维护与监控
1、日志查看:
pm2 logs your_project
2、自动重启与健康检查:
PM2提供负载均衡和自动重启功能,确保高可用性。
pm2 start your_project --name your_app --生态监测模式 balanced
通过以上步骤,你可以成功地将Node.js项目部署到服务器上,并通过Nginx实现反向代理,借助PM2进行进程管理和监控,确保项目的稳定运行。
以上内容就是解答有关“服务器部署nodejs项目”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!