阿里ECS部署Node项目并实现域名访问

简介: 阿里ECS部署Node项目并实现域名访问

Ⅰ· 需求:将Node项目部署到阿里ECS实现域名访问

Ⅱ· 步骤:

  1. SSH连接远程服务器
  2. 随手更新yum

yum update -y

  1. 安装wget

yum install wget -y

  1. 下载、解压、查看Node版本号
  • wget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
  • tar xvf /root/node-v12.16.1-linux-x64.tar.xz
  • ./bin/node -v
  1. 配置环境变量(或使用软链接)

    • 配置环境变量:编辑/etc/profile 末尾新增

      export NODE_HOME=/usr/local/bin/node-v12.16.1
      
      export PATH=$PATH:$NODE_HOME/bin 
      
      export NODE_PATH=$NODE_HOME/lib/node_modules
    • 软链接(示例)

      ln -s /root/node-v8.9.3-linux-x64/bin/node /usr/local/bin/node
      ln -s /root/node-v8.9.3-linux-x64/bin/npm /usr/local/bin/npm
  2. 全局安装 PM2(管理node项目)
官方文档: https://pm2.keymetrics.io/docs/usage/pm2-doc-single-page/
  • 安装:npm install pm2@latest -g
  • 启动:pm2 start app.js
  1. 使用 Nginx
  • 安装:yum install nginx
  • 版本:nginx -v
  • 配置:cd /etc/nginx/nginx.conf

    server {
        listen       80;
        server_name  _;
        root         /usr/share/nginx/html;        
    
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
    
        location / {
        }
    
        error_page 404 /404.html;
            location = /40x.html {
        }
    
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
    
    server {
      listen 80;
      server_name *.wangxiaohang.com;
      location / {
        proxy_pass http://*.*.*.*:3000;## 自己的服务器地址:Port
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    
        proxy_set_header Host $http_host; 
        proxy_set_header X-Nginx-Proxy true;
        proxy_redirect off;
      }
    }
  • 启动:service nginx start
  • 重启:service nginx reload
  1. MongoDB
  • 官网:https://www.mongodb.com/download-center/community
  • 借鉴:https://juejin.im/post/5cb6cc72518825327854752e
  • 版本说明

    • development release ---->开发版
    • current release ---->当前稳定版
    • previous release ---->旧版本
  • 系统说明

    • Ubuntu ----> 优般图
    • Linux legacy ----> 通用版
    • window ----> 不解释
    • RHEL Linux ----> 红帽
    • Amazon Linux ----> 亚马逊
    • Debian Linux ----> Debian
    • SUSE Linux ----> SUSE
  • 用户权限说明

    • Read:允许用户读取指定数据库
    • readWrite:允许用户读写指定数据库
    • dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
    • userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
    • clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
    • readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
    • readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
    • userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
    • dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
    • root:只在admin数据库中可用。超级账号,超级权限。
  • 常用命令

    • mongo:连接数据库
    • show dbs:查看数据库
    • use admin:切换到admin数据库
    • db.creatUser():创建用户
  • 安装流程

    • Ⅰ· 组织文件夹目录

      • cd /usr/local/
      • wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.9.tgz
      • tar -zxvf mongodb-linux-x86_64-rhel70-4.0.9.tgz -C /usr/local/
      • mv mongodb-linux-x86_64-rhel70-4.0.9 mongoDB
      • cd mongoDB
      • mkdir data
      • mkdir data/db
      • mkdir logs
      • touch logs/mongoLogs.log
      • touch mongodb.conf
      • vim mongodb.conf

        #端口号 默认27017
        port=27017
        
        #数据目录
        dbpath = /usr/local/mongoDB/data/db
        
        #日志文件
        logpath = /usr/local/mongoDB/logs/mongoLogs.log
        
        #设置后台运行
        fork = true
        
        #日志输出方式
        logappend = true
  • Ⅱ· 配置本地访问

    • ./mongod --config /usr/local/mongoDB/mongodb.conf
    • ./mongo
    • use admin
    • db.createUser({user:"root",pwd:"123456",roles:["root"]})
    • 修改密码

      • db.changeUserPassword("usertest","changepass") //usertest用户, changepass
      • db.updateUser("usertest",{pwd:"changepass1"})
    • use admin
    • db.auth('root','123456');
    • db.shutdownServer();
  • Ⅲ· 修改配置内容使远程访问

    #端口号 默认27017
    port=27017
    #绑定ip 默认127.0.0.1只允许本地连接
    bind_ip = 0.0.0.0
    
    #数据目录
    dbpath = /usr/local/mongoDB/data/db
    
    #日志文件
    logpath = /usr/local/mongoDB/logs/mongoLogs.log
    
    #设置后台运行
    fork = true
    
    #日志输出方式
    logappend = true
    
    #开启身份验证
    auth = true
    
    • ./mongod --config /usr/local/mongoDB/mongodb.conf
    • ctrl C^
    • ./mongo 127.0.0.1:27017/admin --username "root" --password "123456"
    • use blog
    • db.createUser({user:"blogAdmin",pwd:"123456",roles:[{role:"readWrite",db:"blog"}]})
  • Ⅳ· 开放对外端口,远程连接

    相关报错信息解决办法:
    https://jingyan.baidu.com/article/49ad8bce97bd965834d8fa8b.html
    https://serverfault.com/questions/951870/why-does-firewall-cmd-throws-error-already-enabled-but-is-the-port-not-listed
    • systemctl status firewalld

      • systemctl start firewalld 打开防火墙
    • firewall-cmd --zone=public --add-port=27017/tcp --permanent
    • firewall-cmd --reload
    • firewall-cmd --zone=public --query-port=27017/tcp
    • NodeJs连接数据库

      • mongoose.connect('mongodb://user:password@localhost:port/databaseName')

Ⅲ · 撒花

至此,一个完整的Node项目已经可以再服务器跑起来了,本文后续会持续完善更新,如有错误及其疏漏请不吝赐教!
目录
相关文章
|
11月前
|
Go
在golang中发起http请求以获取访问域名的ip地址实例(使用net, httptrace库)
这只是追踪我们的行程的简单方法,不过希望你跟着探险家的脚步,即使是在互联网的隧道中,也可以找到你想去的地方。接下来就是你的探险之旅了,祝你好运!
596 26
|
存储 API 数据安全/隐私保护
使用宝塔搭建MinIO并且设置域名访问
本文介绍了如何使用宝塔面板搭建MinIO并设置域名访问的完整流程。首先通过宝塔面板安装Docker及MinIO,配置域名与端口,完成Web管理界面的部署。接着,创建存储桶、配置访问规则和API密钥,实现资源的安全管理。最后,通过反向代理设置API接口,测试文件上传功能,确保MinIO可用于图片和文件资源的存储。作者Harry技术还分享了相关开源项目,适合开发者快速上手。
2350 2
使用宝塔搭建MinIO并且设置域名访问
|
安全 网络协议 网络安全
只有IP地址没有域名,如何实现HTTPS访问?
在仅有IP地址而无域名的情况下,实现HTTPS访问并非不可能。主要挑战包括证书颁发机构(CA)对IP地址的支持有限及浏览器兼容性问题。解决方案有:1) 搭建私有CA为内部IP地址颁发证书;2) 使用支持IP地址的公共CA服务。选择合适的方案需根据需求权衡。具体步骤包括选择证书类型、生成CSR文件、提交并完成验证、安装SSL证书和配置强制HTTPS访问。确保IP地址稳定,并定期维护安全性。 **申请优惠**:访问JoySSL官网并填写注册码“230907”可优惠申请IP地址证书。
2399 5
|
域名解析 弹性计算 应用服务中间件
使用域名访问部署在ECS上的网站
本文为您介绍如何为网站配置域名并为域名配置HTTPS证书。
|
网络协议 安全 文件存储
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问,即使IP地址变化,也能通过DDNS服务保持连接。适用于家庭网络远程访问设备及企业临时或移动设备管理,提供便捷性和灵活性。示例代码展示了如何使用Python实现基本的DDNS更新。尽管存在服务可靠性和安全性挑战,DDNS仍极大提升了网络资源的利用效率。
2142 6
|
9月前
|
JavaScript Unix Linux
nvm与node.js的安装指南
通过以上步骤,你可以在各种操作系统上成功安装NVM和Node.js,从而在不同的项目中灵活切换Node.js版本。这种灵活性对于管理不同项目的环境依赖而言是非常重要的。
3005 11
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。
|
存储 JavaScript 搜索推荐
Node框架的安装和配置方法
安装 Node 框架是进行 Node 开发的第一步,通过正确的安装和配置,可以为后续的开发工作提供良好的基础。在安装过程中,需要仔细阅读相关文档和提示,遇到问题及时解决,以确保安装顺利完成。
1176 155
|
资源调度 JavaScript 前端开发
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
13226 23
|
JavaScript 前端开发 数据可视化
【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
880 2
【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡