独立部署小程序基于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实现黑名单中间件设计
Jun 17 NodeJs
基于NodeJS的前后端分离的思考与实践(五)多终端适配
Sep 26 NodeJs
NodeJS制作爬虫全过程
Dec 22 NodeJs
浅谈Nodejs中的作用域问题
Dec 26 NodeJs
详解nodejs微信jssdk后端接口
May 25 NodeJs
Windows下快速搭建NodeJS本地服务器的步骤
Aug 09 NodeJs
NodeJS简单实现WebSocket功能示例
Feb 10 NodeJs
NodeJs搭建本地服务器之使用手机访问的实例讲解
May 12 NodeJs
nodejs中用npm初始化来创建package.json的实例讲解
Oct 10 NodeJs
Nodejs核心模块之net和http的使用详解
Apr 02 NodeJs
nodejs对mongodb数据库的增加修删该查实例代码
Jan 05 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生成静态页
2006/11/25 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
php 的反射详解及示例代码
2016/08/25 PHP
PHP面向对象类型约束用法分析
2019/06/12 PHP
jQuery ajax BUG:object doesn't support this property or method
2010/07/06 Javascript
JSON语法五大要素图文介绍
2012/12/04 Javascript
jquery 无限级联菜单案例分享
2013/03/26 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
2013/06/24 Javascript
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
使用JS+plupload直接批量上传图片到又拍云
2014/12/01 Javascript
JQuery实现鼠标滚轮滑动到页面节点
2015/07/28 Javascript
JS实现三个层重叠点击互相切换的方法
2015/10/06 Javascript
20分钟轻松创建自己的Bootstrap站点
2016/05/12 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
AngularJS动态绑定ng-options的ng-model实例代码
2017/06/21 Javascript
Node之简单的前后端交互(实例讲解)
2017/11/14 Javascript
Vue中在新窗口打开页面及Vue-router的使用
2018/06/13 Javascript
vue观察模式浅析
2018/09/25 Javascript
vue前端框架—Mint UI详解(更适用于移动端)
2019/04/30 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
python编写微信公众号首图思路详解
2019/12/13 Python
Python decorator拦截器代码实例解析
2020/04/04 Python
Python通过类的组合模拟街道红绿灯
2020/09/16 Python
基于html5 canvas实现漫天飞雪效果实例
2014/09/10 HTML / CSS
英国旅游额外服务市场领导者:Holiday Extras(机场停车场、酒店、接送等)
2017/10/07 全球购物
英国领先的餐饮折扣俱乐部:Gourmet Society
2020/07/26 全球购物
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
酒店大堂副理的职责范文
2014/02/13 职场文书
教师现实表现材料
2014/02/14 职场文书
租房协议书范文
2014/08/20 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
2015年秋季新学期寄语
2015/03/25 职场文书
2015年底工作总结范文
2015/05/15 职场文书
困难补助申请报告
2015/05/19 职场文书
电影焦裕禄观后感
2015/06/09 职场文书