当前位置: 首页 > article >正文

服务器从零部署nodejs(midway)项目

有任何问题,都可以私信博主,共同探讨学习。


正文开始

  • 前言
  • 笔记内容
    • 1.环境安装
    • 2.pm2安装
    • 3.启动项目
    • 4.数据库mysql安装
    • 5.数据库工具navicat安装
    • 6.云服务器防火墙设置
    • 7.nginx代理
    • 8.免费证书部署
  • 总结


前言

electron桌面端软件、小程序,web网站等都需要后端服务,最近换了一次服务器,相当于从零部署了一次服务器,所以把部署过程中一些关键信息记录成笔记,供同学们学习。

因为不是初次尝试,可能很多我认为不重要的,恰恰是某些同学要踩的坑,所以如果有所疏漏,望谅解。

博主其他资源,可以通过中二少年学编程的个人主页来获取。


笔记内容

1.环境安装

先在服务器上安装环境,我的项目基于nodejs框架midwayjs,所以需要安装node和npm。如果是java项目,则需要安装jdk。

安装nodejs,可以选择博主的工具便捷管理各版本nodejs,也可以下载nvm,安装node和npm,我的node版本为16.18.0。博主的工具软件界面如下:
在这里插入图片描述

工具获取方式——百度网盘地址:https://pan.baidu.com/s/1yrl0jYpti7QCn8CHBRT2lw?pwd=1234

2.pm2安装

下载pm2,先设置淘宝镜像源。

npm config set registry https://registry.npmmirror.com  
npm install pm2 -g

3.启动项目

通过后端项目的根目录lize-tools-back进入cmd:
在这里插入图片描述
然后输入命令,启动midwayjs,并命名为lize-tools-back:

pm2 start ./bootstrap.js --name lize-tools-back -i 4

4.数据库mysql安装

安装mysql8.4.2,下载exe安装包。安装时,提示需要 Redistributable for Visual Studio 2019。下载对应的C++库。然后重新点击exe安装,按照提示,点击下一步。在服务中找到Mysql服务,说明下载成功。

5.数据库工具navicat安装

navicat远程连接mysql时报错:Authentication plugin ‘caching_sha2_password‘ cannot be loaded
从MySQL 8.0开始,默认的认证插件从mysql_native_password更改为caching_sha2_password。较旧的MySQL客户端库可能不支持这种新的认证方法,导致连接失败。

如果习惯了旧的客户端,就按照下面的步骤解决。如果没什么特殊原因,就升级navicat到最新版本,pj教程非常简单,请自行查询,或者下载博主的工具软件,以后这些功能都会集成。

旧的navicat连接新的MySQL简易步骤:

进入mysql,在存在mysql.exe的文件夹输入命令行:

mysql -u root -p

会提示输入密码,输入前面已经设置的密码即可。

如果mysql报错MySQL报错:Found option without preceding group in config file,说明my.ini文件编码有问题。设置为UTF-8无BOM格式(就是设置成正常的UTF-8)。

进入mysql后,输入:

ALTER USER 'root'@'xxx.xxx.xxx.xxx' IDENTIFIED WITH mysql_native_password BY 'Goldengate*1'

xxx.xxx.xxx.xxx是你服务器的ip

如果提示: Plugin ‘mysql_native_password’ is not loaded。
则在my.ini增加配置:mysql_native_password=ON
然后服务里找到mysql重启服务。重新进入命令行。

6.云服务器防火墙设置

部署后端成功后,在云服务器通过localhost:7001可以访问到数据。但是通过公网ip无法访问,这是因为云服务器安全策略限制。
在云服务器管理平台,防火墙设置中,增加公网端口访问权限。

7.nginx代理

后端正常访问可以通过http协议,也可以通过https协议。

小程序要求必须通过https协议,所以需要用nginx做一次转发,其实就是nginx加载证书,访问时,访问的是nginx暴露的端口,访问nginx后,nginx再转发,去访问对应的ip:port,所以需要修改一下ip地址。配置如下:

     server {
        listen       443 ssl;
        server_name  lizetoolbox.top;

        ssl_certificate      cert/lizetoolbox.top.pem;
        ssl_certificate_key  cert/lizetoolbox.top.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

         location / {
           proxy_pass http://43.138.xxx.xxx:7001;
        }
    }

配置好后,访问https://lizetoolsbox.top时,就会自动转发访问http://43.138.xxx.xxx:7001,而此ip和端口,部署了我们的后端服务。

8.免费证书部署

阿里云和腾讯云都提供了免费证书申请,证书期限为3个月。如果需要详细的证书申请步骤,请全网搜索关键字:“ssl证书免费申请指南 中二少年学编程”。

证书申请后,按照上面第七步中的相对路径,将证书复制粘贴:
在这里插入图片描述


总结

后续如果有补充,还会持续更新。


http://www.kler.cn/a/554398.html

相关文章:

  • vue添加当前时间
  • fastapi sqlalchemy 日志 logging 写入异常 多进程文件写入异常
  • 一文讲解Redis为什么读写性能高以及I/O复用相关知识点
  • 【Python爬虫(28)】爬虫时代,数据安全的坚盾与隐私保护的密锁
  • 电磁铁的磁芯材质
  • Thor: 统一AI模型网关的革新之选
  • 车载音频配置(二)
  • 本地部署DeepSeek大模型
  • 在前端如何把SEO优化做到极致?
  • angular中使用animation.css实现翻转展示卡片正反两面效果
  • centos下使用pyenv管理python版本
  • 基于SpringBoot的乐享田园系统【附源码】
  • D. C05.L08.贪心算法入门(一).课堂练习4.危险的实验(NHOI2015初中)
  • 从零开始用STM32驱动DRV8301:无人机/机器人电机控制指南
  • minio作为K8S后端存储
  • Android看门狗(WatchDog)
  • 缺少网络安全组织架构 网络安全缺陷
  • 前端面试场景题 1 (批量处理toast、减少if-else)
  • 保姆级! 本地部署DeepSeek-R1大模型 安装Ollama Api 后,Postman本地调用 deepseek
  • Python C API 深度解析与实战指南