独立部署小程序基于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的模块写法入门(实例代码)
Mar 07 NodeJs
nodejs的require模块(文件模块/核心模块)及路径介绍
Jan 14 NodeJs
初始Nodejs
Nov 08 NodeJs
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
Sep 06 NodeJs
nodejs使用redis作为缓存介质实现的封装缓存类示例
Feb 07 NodeJs
nodejs+mongodb aggregate级联查询操作示例
Mar 17 NodeJs
nodejs基于express实现文件上传的方法
Mar 19 NodeJs
nodejs前端模板引擎swig入门详解
May 15 NodeJs
nodejs 如何手动实现服务器
Aug 20 NodeJs
nodejs微信开发之自动回复的实现
Mar 17 NodeJs
Nodejs中的require函数的具体使用方法
Apr 02 NodeJs
NodeJS多种创建WebSocket监听的方式(三种)
Jun 04 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
Yii实现多按钮保存与提交的方法
2014/12/03 PHP
PHP列出MySQL中所有数据库的方法
2015/03/12 PHP
PHP回溯法解决0-1背包问题实例分析
2015/03/23 PHP
PHP实现HTTP断点续传的方法
2015/06/17 PHP
PHP自带方法验证邮箱是否存在
2016/02/01 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
2020/08/03 PHP
JavaScript与C# Windows应用程序交互方法
2007/06/29 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
如何在指定的地方插入html内容和文本内容
2013/12/23 Javascript
jquery easyui中treegrid用法的简单实例
2014/02/18 Javascript
PHP中使用微秒计算脚本执行时间例子
2014/11/19 Javascript
jquery密码强度校验
2015/12/02 Javascript
JS原型对象的创建方法详解
2016/06/16 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
Python之eval()函数危险性浅析
2014/07/03 Python
Python中操作文件之write()方法的使用教程
2015/05/25 Python
Python yield 使用方法浅析
2017/05/20 Python
Python的argparse库使用详解
2018/10/09 Python
python中web框架的自定义创建
2019/09/08 Python
python常用数据重复项处理方法
2019/11/22 Python
Python代码生成视频的缩略图的实例讲解
2019/12/22 Python
Python enumerate内置库用法解析
2020/02/24 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
python基于opencv 实现图像时钟
2021/01/04 Python
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
Myprotein比利时官方网站:欧洲第一运动营养品牌
2020/10/04 全球购物
会计电算化应届生求职信
2013/11/03 职场文书
《美丽的公鸡》教学反思
2014/02/25 职场文书
房地产开发项目建议书
2014/05/16 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
2015初中教导处工作总结
2015/07/21 职场文书
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python
Python Pygame实战之塔防游戏的实现
2022/03/17 Python