独立部署小程序基于nodejs的服务器过程详解


Posted in NodeJs onJune 24, 2019

前言

完全自定义的部署小程序服务器, 不依托于腾讯云服务器体系.

以阿里云服务器为基础建立.

服务器语言选用nodejs.

目的

  • 实现https基本访问请求
  • 实现会话管理
  • 实现socket长连接
  • 一个基于socket的小游戏

源代码在这里:

基础要求

  • 有一台服务器(在外网能访问的服务器)
  • 有一个已经备案的域名(必须备案)
  • 有一个已经申请的https证书域名(二级即可)

客户端代码:

独立部署小程序基于nodejs的服务器过程详解

独立部署小程序基于nodejs的服务器过程详解

我的实验环境:

服务器:阿里云云服务器ecs

备案域名: 9z9z.vip

https证书(ca证书): (免费型DV SSL)

https证书申请域名: wuxing.9z9z.vip

配置nodejs环境

登录服务器, 安装nodejs环境

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
yum install -y nodejs

查看nodejs版本.

node -v

安装配置mongode环境

# 安装mongodb及客户端工具
yum install mongodb-server mongodb -y
#建立mongo数据和日志存储目录
mkdir -p /data/mongodb
mkdir -p /data/logs/mongodb
# 启动mongo
mongod --fork --dbpath /data/mongodb --logpath /data/logs/mongodb/weapp.log
# 键入mongo控制台,添加用户
mongo
> use weapp;
> db.createUser({ user: 'weapp', pwd: 'weapp-dev', roles: ['dbAdmin', 'readWrite']});
或者 
db.addUser({ user: 'weapp', pwd: 'weapp-dev', roles: ['dbAdmin', 'readWrite']}); 
> exit;

安装pm2, nodejs服务器管理器

npm install pm2 -g

修改源代码中的appid和appSecretId

在, 微信小程序后台, 设置->开发设置中获取.

独立部署小程序基于nodejs的服务器过程详解

上传源代码中的server目录到服务器目录,安装node依赖包

npm install

启动服务器

pm2 start app.js

配置nginx, 部署https证书

安装nginx服务器

yum install nginx -y

将申请的ssl证书上传到/etc/nginx目录中.

打开新建配置/etc/nginx/conf.d/ssl.conf

# WebSocket 配置
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 443;
server_name wuxing.9z9z.vip; # 改为绑定证书的域名
# ssl 配置
ssl on;
ssl_certificate 214355946590.pem; # 改为自己申请得到的 crt 文件的名称或者绝对路径
ssl_certificate_key 214355946590.key; # 改为自己申请得到的 key 文件的名称或者绝对路径
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
# WebSocket 配置
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
location / {
proxy_pass http://127.0.0.1:8765;
}
}

重新启动nginx

service nginx reload
或者 nginx -s reload

此时直接在浏览器中会有正常输出的字符串:Response from express

服务器配置成功.

设置小程序的服务器域名

打开小程序后台, 设置 -> 开发设置. 设置服务器域名

独立部署小程序基于nodejs的服务器过程详解

打开小程序开发工具

配置appid

独立部署小程序基于nodejs的服务器过程详解

打开app.js, 将config.host改为设置的网址."wuxing.9z9z.vip"

独立部署小程序基于nodejs的服务器过程详解

完成.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
Sep 26 NodeJs
Nodejs实现多人同时在线移动鼠标的小游戏分享
Dec 06 NodeJs
nodejs开发——express路由与中间件
Mar 24 NodeJs
详解nodejs微信公众号开发——6.自定义菜单
Apr 13 NodeJs
nodejs入门教程四:URL相关模块用法分析
Apr 24 NodeJs
NodeJs的fs读写删除移动监听
Apr 28 NodeJs
NodeJS父进程与子进程资源共享原理与实现方法
Mar 16 NodeJs
基于nodejs res.end和res.send的区别
May 14 NodeJs
详解nodejs 配置文件处理方案
Jan 02 NodeJs
PHPStorm中如何对nodejs项目进行单元测试详解
Feb 28 NodeJs
nodejs简单抓包工具使用详解
Aug 23 NodeJs
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
Dec 14 NodeJs
nodejs实现获取本地文件夹下图片信息功能示例
Jun 22 #NodeJs
NodeJs 模仿SIP话机注册的方法
Jun 21 #NodeJs
通过Nodejs搭建网站简单实现注册登录流程
Jun 14 #NodeJs
NodeJs生成sitemap站点地图的方法示例
Jun 11 #NodeJs
nodejs提示:cross-device link not permitted, rename错误的解决方法
Jun 10 #NodeJs
Nodejs异步流程框架async的方法
Jun 07 #NodeJs
nodejs log4js 使用详解
May 31 #NodeJs
You might like
php+dbfile开发小型留言本
2006/10/09 PHP
PHP按行读取文件时删除换行符的3种方法
2014/05/04 PHP
php将金额数字转化为中文大写
2015/07/09 PHP
PHP用户验证和标签推荐的简单使用
2016/10/31 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
2017/06/13 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
DWR中各种java方法的调用
2016/05/04 Javascript
AngularJS基础 ng-srcset 指令简单示例
2016/08/03 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
2017/04/13 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
three.js中文文档学习之创建场景
2017/11/20 Javascript
vuex 解决报错this.$store.commit is not a function的方法
2018/12/17 Javascript
Vue 表情包输入组件的实现代码
2019/01/21 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
vue实现抖音时间转盘
2019/09/08 Javascript
通过实例解析javascript Date对象属性及方法
2020/11/04 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
Python中的字典与成员运算符初步探究
2015/10/13 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
python实现n个数中选出m个数的方法
2018/11/13 Python
Python Pywavelet 小波阈值实例
2019/01/09 Python
基于python判断字符串括号是否闭合{}[]()
2020/09/21 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
Html5剪切板功能的实现代码
2018/06/29 HTML / CSS
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
抽象类和接口的区别
2012/09/19 面试题
工商管理专业应届生求职信
2013/11/04 职场文书
店长岗位的工作内容
2013/11/12 职场文书
亚运会口号
2014/06/20 职场文书
机关党员四风问题个人整改措施
2014/10/26 职场文书
起诉意见书范文
2015/05/19 职场文书
男人帮观后感
2015/06/18 职场文书
2016年优秀少先队员事迹材料
2016/02/26 职场文书
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
2022/04/21 Python
2022年显卡天梯图(6月更新)
2022/06/17 数码科技