Node-服务器简单部署
【摘要】 Node-服务器简单部署
Node-服务器简单部署
接下来我们新建一个项目,然后将项目部署到服务器上,并且配置好以后可以在外网进行访问
安装nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
1、简单服务器环境搭建
接下来我们就实现把 Node.js 项目部署到/opt/nexus-node-api并配置外部访问
进入服务器以后安装环境
# 更新包列表
sudo apt update
# 安装 Node.js 和 npm
sudo apt install nodejs npm
# 验证安装
node --version
npm --version
项目创建
# 创建目录
sudo mkdir -p /opt/nexus-node-api
# 设置所有者和权限
sudo chown -R $USER:$USER /opt/nexus-node-api
chmod -R 755 /opt/nexus-node-api
# 进入目录
cd /opt/nexus-node-api
# 创建一个项目
nano app.js
项目内容
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World!\n');
});
server.listen(3000, '0.0.0.0', () => {
console.log(`Server running on port 3000`);
});
测试运行以及外网访问
注意点:一定要注意这个时候必须保证你的服务器里面的防火墙(安全组)规则里面有3000这个端口号
node app.js
现在访问 http://你的服务器IP:3000 应该能看到 "Hello World!"
2、正式项目配置
卸载node环境
这里我们使用nvm来配置我们的环境,如果已经有的,我们删除一下已经有的环境
# 卸载 nodejs 和 npm
sudo apt-get remove nodejs npm
sudo apt-get purge nodejs npm
安装nvm
// 安装 nvm
# 建议安装 nvm,方便版本管理
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
配置环境变量
# 编辑 .bashrc
nano ~/.bashrc
//添加配置 ---一般系统会自动为我们添加
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
// 重新加载配置
source ~/.bashrc
// 验证 nvm 安装
nvm --version
安装稳定版本node
ubuntu为例子
// 查看可以安装的稳定版本
nvm ls-remote
// 这里我安转版本
nvm install v22.12.0
// 使用
nvm use v22.12.0
// 设置默认版本
nvm alias default v22.12.0
// pm2
npm i -g pm2
使用pm2守护进程
PM2 是 Node 应用的进程管理工具,能保证服务在后台持续运行:要不然关闭窗口之后,就无法访问了
# 全局安装 PM2
npm install pm2 -g
# 启动服务并命名(方便管理)
pm2 start app.js --name "node-api-nexus"
# 查看服务状态
pm2 list # 若 Status 为 online 则表示启动成功
这个时候不管怎么刷新我们的页面或者窗口,可以始终稳定访问我们的接口
pm2 重启对应的服务
pm2 restart "node-api-nexus"
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)