在阿里云上部署nodejs服务 + https

本文详细指导如何在阿里云上搭建Node.js应用,包括备案域名、创建ECS服务器、部署node.js、安装Nginx配置HTTPS,以及使用pm2管理项目。适合初学者快速上手云环境部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备

1.备案域名
2.阿里云服务器
3.node.js环境

开始

1. 创建ECS云服务器实例

(1)所有配置可以选最低即可(省钱)
(2)主机选取: CentOS 7.9.*位
(3)创建完成后,在实例列表中重置实例密码&远程连接密码,修改完之后重启实例
重置密码

2. 用MotaXterm连接web服务器

创建连接
创建session

输入密码显示连接成功连接成功

3. 部署node.js

3.1 环境准备

  • 确认cd /opt/software 目录是否存在,没有的话创建该目录
  • 安装node
// 安装
wget https://nodejs.org/dist/v15.11.0/node-v15.11.0-linux-x64.tar.xz
//解压:
tar xvJf node-v15.11.0-linux-x64.tar.xz
//删除二进制包:
rm -rf node-v15.11.0-linux-x64.tar.xz
  • 配置环境变量
//编辑环境变量文件:
vi /etc/profile
export PATH=$PATH:/opt/software/node/bin/

// 保存环境变量
source /etc/profile
  • 检查安装版本
node -v
npm -v
  • 安装cnpm镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org

3.2 上传项目并启动

3.2.1 创建项目
mkdir testApp
cd testApp
npm init -y

package.json 配置如下

{
  "name": "testApp",
  "version": "1.0.0",
  "description": "",
  "main": "dist/index.js",
  "scripts": {
    "build": "tsc",
    "start": "tsc && node dist/index.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@koa/cors": "^3.3.0",
    "@types/koa": "^2.13.4",
    "@types/koa-router": "^7.4.4",
    "koa": "^2.13.4",
    "koa-router": "^10.1.1",
    "koa-sslify": "^5.0.0",
    "typescript": "^4.6.3"
  },
  "devDependencies": {
    "@types/koa-sslify": "^4.0.3",
    "@types/koa__cors": "^3.1.1"
  }
}

创建 src/index.ts 内容如下:

import koa from "koa";
import router from "koa-router";
import cors from "@koa/cors";
import crypto from "crypto";

const app = new koa();
const t =  new router();
app.use(cors());
t.get("/", async ctx => {
  ctx.body = {
    code: 200,
    msg: "你好 按理云"
  }
});
t.get("/tt", async ctx => {
  ctx.body = {
    code: 200,
    mag: "你访问成功了噢"
  }
});
app.use(t.routes());
app.listen(5000, () => {
  return console.log('https server is running on 5000');
});

编译

tsc
3.2.2 运行

将编译好的 dist/index.jspackage.json 拖到 /home/testApp 目录下
上传项目

然后在命令窗口中执行

// 进入目录
cd /home/testApp
// 安装依赖包
npm install
// 启动
node index.js
3.2.3 配置安全组

配置安全组
配置规则
添加规则

现在可以访问 http://www.testwebhook.itwin365.cn

3.3 使用 pm2 启动多个项目

  • 安装
npm install pm2 -g
  • 启动
//进入第一个项目下
pm2 start index.js  --name my-server
  • 常用命令
命令解释
pm2 start index.js --name my-server启动并命名进程
pm2 list显示所有进行
pm2 stop my-server停止my-server这个进程
pm2 restart all启动所有进程
pm2 delete my-server删除某个进程
pm2 show my-server查看某个进程的详情信息
pm2 logs查看日志信息

4. 绑定域名

4.1 申请域名

登录阿里云 -> 域名解析
如果有备案的域名未绑定的,可直接用;如果备案的域名已绑定,可以创建二级域名使用。以下介绍后者方法的使用。
域名解析
申请二级域名

4.2 下载证书

验证完成之后域名后,申请该域名证书并下载。
申请证书

5. 安装Nginx,配置HTTPS

//安装nginx
yum install nginx
//启动nginx
nginx 
//使用命令nginx -t查找nginx配置文件
并使用vi命令修改该配置文件
nginx -t
vi /etc/nginx/nginx.conf

将下载的 ssl 证书存放到 /root/cert 目录下

修改 nginx.conf ,配置 https

server {
        listen 443 ssl;
        listen [::]:443 ssl http2;
        root /home/index.html;
        server_name www.testwebhook.itwin365.cn;
        ssl_certificate /root/cert/testwebhook.itwin365.cn.pem;
        ssl_certificate_key /root/cert/testwebhook.itwin365.cn.key;
        location / {
                proxy_pass http://8.142.212.182:5000;
        }
    }

    server {
        listen 80;
        server_name www.testwebhook.itwin365.cn;
        root /home/index.html;
        location / {

        }
    }

现在可以访问 htps://www.testwebhook.itwin365.cn

常用的 Nginx 命令:

yum install nginx   //安装nginx
nginx //启动nginx
cd /etc/nginx  //进入nginx的安装目录
 ps -ef |grep nginx  // 查看nginx是否正常运行
 netstat -lntp  //查看所有被主机监听的端口 
nginx -s stop   //停止nginx
nginx -s reload  //重启nginx
//修改配置文件
nginx -t
vi /etc/nginx/nginx.conf
nginx -s reload
 //再配置一个端口
  server {
        listen 9090;
        server_name chen;
        root /home/html/chen;

        location /{
                
        }
    }

<think>好的,用户想知道如何在阿里云ECS服务器上部署Node.js应用程序。我需要根据提供的引用内容来整理步骤。首先,用户提供的引用有三个,都是关于在阿里云ECS部署Node.js项目的教程,所以需要综合这些信息。 首先,步骤应该是购买和配置ECS服务器。引用1和2提到了学生认证和购买ECS,可能需要指导用户如何申请学生优惠,重置密码等。接下来是连接服务器,引用2提到了使用终端连接,可能包括SSH连接的方法,以及安装宝塔面板,这部分需要详细说明。 然后是服务器环境的配置,比如安装Node.js。引用2提到在服务器上下载Node.js,可能需要说明使用包管理器安装的方法,比如用apt-get或者从源代码安装。同时,引用3提到了使用express框架,可能需要安装npm包,比如express。 接着是部署项目文件。引用3提到通过Git导入项目文件,或者使用FTP工具上传。这里需要分步骤说明如何将本地的Node.js代码上传到服务器,比如使用scp命令或者宝塔面板的文件管理功能。 然后是安装依赖和开放端口。引用2中提到了开放Node.js代码中的端口,包括宝塔面板和服务器安全组的设置。用户可能需要知道如何在阿里云控制台配置安全组规则,放行相应的端口,比如3000或者80端口。 接下来是运行应用程序,保持后台运行。引用2提到了使用nohup命令,这样即使关闭终端,应用也能持续运行。需要说明nohup的使用方法,比如nohup node index.js &。 最后是配置Nginx反向代理和SSL证书。引用1提到申请免费SSL证书配置多网站。这里可能需要指导用户如何通过Nginx配置反向代理到Node.js应用的端口,以及如何配置HTTPS,提升安全性。 还要考虑常见问题,比如引用2中的图片加载问题、端口无法访问、服务器连接问题等,可能需要给出一些排查步骤,比如检查防火墙设置,确认端口是否正确开放,查看日志文件等。 需要确保步骤清晰,逻辑顺序正确,用户能够一步步跟随操作。同时,要引用对应的引用来源,比如在购买ECS时引用[^1][^2],在安装Node.js时引用[^2][^3],在配置Nginx时引用等。另外,用户可能关心如何管理多个网站,所以需要简要提及Nginx的多站点配置方法,如引用1所述。 最后生成相关问题,可能涉及性能优化、HTTPS配置、多应用部署等,根据引用内容中的知识点来提问,比如如何优化Node.js性能,如何配置SSL证书,如何处理多个Node.js应用部署等。</think>### 如何在阿里云ECS服务部署Node.js应用程序? 以下是分步骤的详细教程,结合阿里云ECS环境配置Node.js项目部署的核心要点: --- #### **一、服务器购买与基础配置** 1. **购买ECS实例** - 登录[阿里云官网](https://www.aliyun.com/),完成实名认证与学生认证(学生可享免费试用或优惠)。 - 选择操作系统(推荐Ubuntu/Centos),配置安全组规则(预先开放SSH端口22、HTTP端口80、HTTPS端口443及Node.js应用端口如3000)。 2. **连接服务器** - 使用终端通过SSH连接: ```bash ssh root@<服务器公网IP> ``` - 首次登录后重置密码,更新系统: ```bash apt update && apt upgrade # Ubuntu yum update # Centos ``` --- #### **二、安装Node.js环境** 1. **通过包管理器安装** - **Ubuntu**: ```bash curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - sudo apt install -y nodejs ``` - **Centos**: ```bash curl -fsSL https://rpm.nodesource.com/setup_lts.x | bash - yum install -y nodejs ``` - 验证安装:`node -v` 和 `npm -v`[^3]。 2. **全局工具配置(可选)** ```bash npm install -g pm2 # 进程管理工具 ``` --- #### **三、部署Node.js项目文件** 1. **上传代码到服务器** - 方法一:通过Git克隆项目: ```bash git clone <仓库地址> cd <项目目录> npm install # 安装依赖 ``` - 方法二:使用SCP/FTP工具上传本地文件: ```bash scp -r ./local_project root@<服务器IP>:/opt/node_app ``` 2. **配置应用端口** - 确保代码中监听的端口(如3000)与服务器安全组、宝塔面板(若使用)中开放的端口一致。 --- #### **四、运行与持久化服务** 1. **直接运行** ```bash node index.js # 测试运行(关闭终端会终止服务) ``` 2. **后台运行** - 使用`nohup`保持进程: ```bash nohup node index.js > app.log 2>&1 & ``` - 或使用PM2管理: ```bash pm2 start index.js --name "my-app" pm2 save && pm2 startup # 持久化进程 ``` --- #### **五、Nginx反向代理与HTTPS配置** 1. **安装Nginx** ```bash apt install nginx # Ubuntu yum install nginx # Centos systemctl start nginx ``` 2. **配置反向代理** - 编辑Nginx站点配置文件(如`/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 -s reload`[^1]。 3. **申请SSL证书** - 在阿里云控制台申请免费SSL证书,下载Nginx版本证书文件(`.crt`和`.key`)。 - 修改Nginx配置启用HTTPS: ```nginx server { listen 443 ssl; ssl_certificate /path/to/cert.crt; ssl_certificate_key /path/to/cert.key; # 其他配置同上 } ``` --- #### **六、常见问题解决** - **端口无法访问**:检查安全组规则、服务器防火墙(`ufw`/`iptables`)及应用日志。 - **图片/静态资源加载失败**:确保文件路径正确,Nginx配置中静态资源代理无误[^2]。 - **多网站部署**:在Nginx中为每个域名创建独立的配置文件,绑定不同端口或域名[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值