阿里云ECS[Centos7]部署NodeJS项目

本文详细介绍了在阿里云ECS上部署NodeJS项目的步骤,包括安装NodeJS、配置安全组、上传项目、安装依赖及启动项目。同时,提供了如何查看和管理NodeJS进程的方法。

阿里云ECS[Centos7]部署NodeJS项目

一、安装Node

1.下载nodejs
wget https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-x64.tar.xz
2.解压
tar -xvf node-v10.16.3-linux-x64.tar.xz
3.重命名
mv node-v10.16.3-linux-x64 node
4.查看版本
[root@localhost home]# node -v
v10.16.3
[root@localhost home]# npm -v
6.9.0
【注】当出现版本号说明安装成功

二、开通阿里云ECS安全组[端口]

在这里插入图片描述
在这里插入图片描述

三、将项目上传到服务器

【说明】我使用的是Xftp[由于我比较菜]
在这里插入图片描述在这里插入图片描述

四、启动项目[上传完文件]

1.进入到项目中
[root@iz2ze7gwnt3kts6gkjvo0vz ~]# cd workspace/
[root@iz2ze7gwnt3kts6gkjvo0vz workspace]# cd Node/
[root@iz2ze7gwnt3kts6gkjvo0vz Node]# cd back-shop/
2.安装依赖
npm install
3.启动项目
node app.js

五、杀死所有Node进程

1.杀死所有Node进程
【命令】pkill node
2.查看Node进程
【命令】ps -ef|grep node

<think>好的,我需要帮助用户了解如何将Node.js应用程序部署阿里云ECS实例,并连接MySQL数据库。根据用户提供的引用内容,我需要整合这些信息,并生成一个结构清晰的教程。首先,我要确认用户的问题核心是部署Node.js和配置MySQL,所以步骤需要涵盖这两个方面。 首先,我需要回顾用户提供的引用内容。引用2提到在阿里云部署Node+MySQL,需要配置root用户的host为%,允许远程连接。引用3和4涉及使用宝塔面板安装Nginx、MySQL和PM2,以及通过Navicat连接数据库的SSH和常规设置。引用4还提到修改Node.js中的数据库连接配置,使用阿里云主机的IP和数据库密码。 接下来,我需要将这些信息整理成一个逻辑流程。可能的步骤包括:准备阿里云ECS实例、安装必要软件(Node.js、MySQL)、配置MySQL远程访问、部署Node.js应用、使用PM2管理进程、配置Nginx反向代理,以及测试连接。此外,需要注意安全组设置,开放相关端口(如22, 80, 443, 3306),以及数据库权限的修改。 需要确保每个步骤都清晰,并正确引用提供的资料。例如,在配置MySQL时,引用2中的SQL命令需要准确无误地展示,同时提醒用户安全风险。在部署Node.js应用部分,引用4提到的修改数据库连接配置的步骤要详细说明。使用宝塔面板安装软件的部分可以参考引用3,但需要简化说明,避免过于复杂。 另外,要注意用户可能遇到的常见问题,比如防火墙设置、权限错误、连接超时等,应在注意事项中提及。同时,强调安全措施,如使用强密码、限制root用户的远程访问,以及定期备份的重要性。 最后,生成相关问题,帮助用户深入理解可能遇到的扩展问题,比如性能优化、HTTPS配置、数据库备份和负载均衡等。这些问题需要与教程内容相关,并且有实际参考价值。 总结步骤: 1. 准备ECS实例:创建实例,配置安全组,登录实例。 2. 安装环境:Node.js、MySQL,使用宝塔面板或手动安装。 3. 配置MySQL:允许远程连接,创建专用用户,授权。 4. 部署Node.js应用:上传代码,安装依赖,配置数据库连接。 5. 使用PM2管理进程:安装PM2,启动应用。 6. Nginx反向代理:安装配置Nginx,设置代理规则。 7. 测试与验证:检查应用运行状态和数据库连接。 每个步骤需要详细说明,并正确引用提供的资料中的方法,确保用户能够一步步跟随操作,同时注意潜在的问题和解决方案。</think>### 如何将Node.js应用程序部署阿里云ECS并连接MySQL数据库? 以下是分步部署教程,整合了阿里云ECS实例配置、Node.js环境搭建、MySQL数据库连接及安全优化: --- #### **一、准备阿里云ECS实例** 1. **创建ECS实例** - 登录阿里云控制台,选择ECS实例,根据需求选择操作系统(如CentOS 7/8)。 - 配置安全组,开放以下端口: - SSH端口(22)、HTTP(80)、HTTPS(443)、MySQL(3306)[^4]。 2. **登录ECS实例** ```bash ssh root@<ECS公网IP> # 使用实例密码登录 ``` --- #### **二、安装Node.js与MySQL** 1. **安装Node.js** 通过NodeSource脚本安装指定版本(如Node.js 16.x): ```bash curl -fsSL https://rpm.nodesource.com/setup_16.x | bash - yum install -y nodejs node -v # 验证安装 ``` 2. **安装MySQL数据库** - 添加MySQL官方Yum仓库并安装: ```bash wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm sudo yum install mysql80-community-release-el7-3.noarch.rpm sudo yum install mysql-community-server ``` - 启动MySQL并设置开机自启: ```bash systemctl start mysqld systemctl enable mysqld ``` --- #### **三、配置MySQL远程连接** 1. **修改root用户权限** - 登录MySQL并修改`root`用户的访问权限: ```sql mysql -u root -p # 输入初始临时密码 ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; -- 修改密码 USE mysql; UPDATE user SET host='%' WHERE user='root'; -- 允许远程连接[^2] FLUSH PRIVILEGES; ``` - **注意**:建议创建专用数据库用户而非直接使用`root`[^4]。 2. **创建专用数据库用户**(可选) ```sql CREATE USER 'app_user'@'%' IDENTIFIED BY 'strong_password'; GRANT ALL PRIVILEGES ON your_database.* TO 'app_user'@'%'; FLUSH PRIVILEGES; ``` --- #### **四、部署Node.js应用程序** 1. **上传代码到ECS** - 使用`scp`或SFTP工具上传项目文件: ```bash scp -r ./node-app root@<ECS公网IP>:/opt/ ``` 2. **安装依赖并配置数据库连接** - 在项目目录中修改数据库配置文件(如`config.js`): ```javascript module.exports = { db: { host: 'ECS公网IP', // 改为ECS实例的公网IP[^4] user: 'app_user', password: 'strong_password', database: 'your_database' } }; ``` - 安装依赖并运行: ```bash cd /opt/node-app npm install node app.js # 测试运行 ``` 3. **使用PM2管理进程** - 全局安装PM2并启动应用: ```bash npm install -g pm2 pm2 start app.js --name "node-app" pm2 save pm2 startup # 设置开机自启 ``` --- #### **五、配置Nginx反向代理(可选)** 1. **安装Nginx** ```bash yum install nginx systemctl start nginx ``` 2. **配置代理规则** - 编辑`/etc/nginx/conf.d/node-app.conf`: ```nginx server { listen 80; server_name your_domain.com; location / { proxy_pass http://localhost:3000; # Node.js应用端口 proxy_set_header Host $host; } } ``` - 重启Nginx: ```bash nginx -s reload ``` --- #### **六、测试与验证** 1. **检查应用运行状态** - 访问`http://ECS公网IP:3000`(直接访问Node.js)或通过域名(Nginx代理)。 2. **验证数据库连接** - 在Node.js应用中执行数据库操作(如查询),观察是否返回预期结果。 - 使用Navicat等工具测试远程连接: - SSH连接(端口22,ECS实例密码) - 常规连接(端口3306,数据库账号密码)。 --- #### **注意事项** 1. **安全建议** - 避免直接使用`root`用户远程连接MySQL,优先创建专用用户[^2]。 - 定期备份数据库,使用SSL加密连接(如需更高安全性)。 - 配置阿里云安全组,仅允许必要端口的访问。 2. **常见问题** - **连接超时**:检查安全组规则和MySQL的`bind-address`配置。 - **权限错误**:确认数据库用户是否有远程访问权限。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值