linux下node项目快速迁移到新服务器

本文详细介绍了在项目部署中遇到服务器更换时,如何快速迁移云Linux机器上的Node服务。包括项目工程文件在线转移技巧,Node环境的安装配置,以及使用PM2管理器进行服务管理,确保迁移过程高效稳定。

项目部署中可能会有更换服务器的可能,如何能快速将云linux机器上的node服务快速迁移考验开发人员的综合能力,本篇博文就此做个总结说明

1.项目工程文件在线转移

如果你还只会从云机上通过ftp工具拉到本地,再从本地上传到新的云机,那就太low了,linux下直接转移最方便scp -r /etc root@192.168.1.xx:/opt

即在原云机上 将 etc目录下的文件及子目录 传到 新云机192.186.1.xx下的opt目录下,当然为了提高转移速度可以先进行压缩在转移。

2.安装node环境

在根目录下创建 node目录 mkdir node

运行:wget https://nodejs.org/dist/v11.12.0/node-v11.12.0-linux-x64.tar.xz下载node安装包

xz -d node-v11.12.0-linux-x64.tar.xz
 
tar xvf node-v11.12.0-linux-x64.tar
 
mv node-v11.12.0-linux-x64 nodejs

以上命令意义:

xz -d node-xxxx.tar.xz —将tar.xz解压成tar文件

tar -xvf node-xxxx.tar —将tar文件解压成文件夹

mv node-xxx nodejs ----改文件夹的名字,改成nodejs

重点部分来了

此时我们已经将node安装到了linux下,但是没有全局配置全局变量,所以除了在对应node/bin的目录下执行node系列命令能成功外其他地方都会失败,找不到命令。

如果不是以root身份登录执行:

ln -s /usr/local/node/node-v11.12.0/bin/node /usr/local/bin/node
 
ln -s /usr/local/node/node-v11.12.0/bin/npm /usr/local/bin/npm

添加软连接使得全局可用

如果是以root身份登录以上命令会失败,原因是root无usr/loacl目录

所以root下修改bash_profile

首先在 root 目录下找到 .bash_profile 文件,编辑,vi ~/.bash_profile
找到 PATH=PATH:PATH:PATH:HOME/bin,在后面添加路径为:
PATH=PATH:PATH:PATH:HOME/bin:/home/node/nodejs/bin
保存修改,然后重载一下,source ~/.bash_profile

再次测试 node -v 发现ok

3.安装pm2管理器

linux下管理node服务最合适的工具莫非PM2了,


npm install pm2 -g

安装成功后 pm2 list 验证:

在这里插入图片描述

cd到第一步迁移过来的项目工程app.js下

直接pm2 start app.js 就一切ok。

<think>嗯,用户之前问过如何将Node.js项目部署到服务器,我给出了基于Linux系统的步骤,使用了宝塔面板和Nginx。现在用户的问题是关于Windows服务器的部署方法。需要结合之前的回答,但调整到Windows环境。 首先,用户可能已经熟悉了Linux部署的流程,现在需要迁移到Windows,可能是因为公司环境限制或者个人偏好。需要确保步骤清晰,适合Windows操作习惯,比如使用PowerShell、IIS代替Nginx,以及Windows的服务管理工具。 然后,参考用户提供的引用内容,里面提到了安装Node.js、处理依赖、使用Nginx等。但Windows下通常用IIS做反向代理,所以需要调整这部分内容。同时,用户提到不要上传node_modules,这点同样适用,但Windows的路径和命令可能不同,需要注意。 接下来,需要分步骤:环境准备、项目上传、依赖安装、进程管理、反向代理配置、数据库设置、自动启动和HTTPS。每个步骤都要对应Windows特有的工具和命令,比如用PowerShell安装Node.js,使用pm2-windows-service来管理进程,IIS的URL重写模块做反向代理,以及用任务计划程序设置开机启动。 还要考虑用户可能遇到的常见问题,比如路径中的空格问题,防火墙设置,以及如何调试服务启动失败的情况。此外,用户可能关心如何维护和监控,比如日志管理和性能优化,这些都需要在Windows环境下给出解决方案。 最后,生成的相关问题需要覆盖用户可能进一步的需求,比如Docker容器化、内存泄漏处理、CI/CD集成,以及Windows特有的问题如IIS配置优化。确保回答不仅步骤正确,还包含最佳实践和优化建议,帮助用户全面掌握部署流程。</think>### Node.js项目部署到Windows服务器的详细步骤 #### 一、服务器基础环境配置 1. **安装Node.js运行环境** - 下载Windows版Node.js安装包(建议选择LTS版本) 官网地址:https://nodejs.org/zh-cn/download/ - 运行安装程序时勾选 **"Automatically install the necessary tools"**(自动安装构建工具)[^1] - 验证安装: ```powershell node -v npm -v ``` 2. **开放防火墙端口** - 在Windows防火墙高级设置中开放应用端口(如3000): ```powershell New-NetFirewallRule -DisplayName "Node.js Port" -Direction Inbound -LocalPort 3000 -Protocol TCP -Action Allow ``` --- #### 二、项目部署核心步骤 1. **上传项目文件** - 通过远程桌面连接服务器,使用以下方式传输代码: - 方式1:直接复制项目文件夹(**排除node_modules目录**) - 方式2:通过Git克隆(需先安装Git for Windows) ```powershell git clone https://github.com/your-project.git ``` 2. **安装项目依赖** ```powershell cd D:\projects\your-project npm install --production # 仅安装生产环境依赖 ``` 3. **配置环境变量** - 在项目根目录创建`.env`文件(与Linux部署一致) - 通过系统属性设置全局环境变量(针对需要系统级访问的配置) --- #### 三、进程管理方案 1. **使用PM2 for Windows** - 全局安装PM2: ```powershell npm install pm2 -g ``` - 启动项目: ```powershell pm2 start app.js --name "node-app" ``` - 设置开机自启: ```powershell pm2 startup pm2 save ``` 2. **替代方案:Windows服务** 使用`pm2-windows-service`转换为系统服务: ```powershell npm install pm2-windows-service -g pm2-service-install -n "NodeAppService" ``` --- #### 四、反向代理配置(IIS方案) 1. **安装IIS与URL重写模块** - 在"Windows功能"中启用: ✓ Internet Information Services ✓ CGI(用于Node.js反向代理) - 下载并安装URL Rewrite模块: https://www.iis.net/downloads/microsoft/url-rewrite 2. **配置反向代理规则** - 在IIS管理器中建网站,绑定域名/IP - 添加URL重写规则(web.config文件): ```xml <configuration> <system.webServer> <rewrite> <rules> <rule name="NodeProxy" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> </conditions> <action type="Rewrite" url="http://localhost:3000/{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration> ``` --- #### 五、数据库部署(以MySQL为例) 1. **安装MySQL for Windows** - 下载官方社区版:https://dev.mysql.com/downloads/installer/ - 选择"Server only"安装模式,设置root密码 2. **导入数据库** ```powershell mysql -u root -p < D:\database_backup.sql ``` --- #### 六、HTTPS配置 1. **申请SSL证书** - 通过Let's Encrypt申请免费证书(推荐使用Win-acme工具) https://www.win-acme.com/ 2. **IIS绑定证书** - 在IIS站点绑定中添加HTTPS绑定,选择导入的证书 --- #### 七、调试与维护 1. **日志查看** - PM2日志:`pm2 logs` - IIS日志路径:`C:\inetpub\logs\LogFiles` 2. **常见问题处理** - **端口占用**: ```powershell netstat -ano | findstr :3000 taskkill /PID <进程ID> /F ``` - **环境变量不生效**: 重启服务器或通过`refreshenv`命令刷环境 --- ### 最佳实践建议 1. 使用**Chocolatey**包管理器简化软件安装: ```powershell Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) choco install git nodejs -y ``` 2. 对敏感配置使用**Windows凭据管理器**替代.env文件 --- --相关问题--: 1. 如何在Windows Server上配置Node.js集群? 2. IIS与Nginx在Node.js反向代理中的性能对比? 3. 如何通过PowerShell脚本实现自动化部署? 4. Windows环境下如何排查Node.js内存泄漏?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值