独立部署小程序基于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 相关文章推荐
使用upstart把nodejs应用封装为系统服务实例
Jun 01 NodeJs
初始Nodejs
Nov 08 NodeJs
nodejs 实现钉钉ISV接入的加密解密方法
Jan 16 NodeJs
nodejs的压缩文件模块archiver用法示例
Jan 18 NodeJs
Nodejs实现短信验证码功能
Feb 09 NodeJs
Nodejs 发送Post请求功能(发短信验证码例子)
Feb 09 NodeJs
详解nodeJS之二进制buffer对象
Jun 03 NodeJs
nodejs结合socket.io实现websocket通信功能的方法
Jan 12 NodeJs
详解从NodeJS搭建中间层再谈前后端分离
Nov 13 NodeJs
Nodejs模块的调用操作实例分析
Dec 25 NodeJs
nodeJS与MySQL实现分页数据以及倒序数据
Jun 05 NodeJs
NodeJs内存占用过高的排查实战记录
May 10 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版(1)
2006/10/09 PHP
php采集速度探究总结(原创)
2008/04/18 PHP
C# Assembly类访问程序集信息
2009/06/13 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
PHP查看SSL证书信息的方法
2016/09/22 PHP
PHP simplexml_import_dom()函数讲解
2019/02/03 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
JS简单实现登陆验证附效果图
2013/11/19 Javascript
用Jquery实现滚动新闻
2014/02/12 Javascript
Express.JS使用详解
2014/07/17 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
jQuery 选择器详解
2015/01/19 Javascript
JS实现数组去重复值的方法示例
2017/02/18 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
在 Angular-cli 中使用 simple-mock 实现前端开发 API Mock 接口数据模拟功能的方法
2018/11/28 Javascript
python根据开头和结尾字符串获取中间字符串的方法
2015/03/26 Python
Python版微信红包分配算法
2015/05/04 Python
python列表操作之extend和append的区别实例分析
2015/07/28 Python
深入讲解Python中的迭代器和生成器
2015/10/26 Python
python itchat实现微信自动回复的示例代码
2017/08/14 Python
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
在python中利用GDAL对tif文件进行读写的方法
2018/11/29 Python
在python 中实现运行多条shell命令
2019/01/07 Python
Python实现DDos攻击实例详解
2019/02/02 Python
django做form表单的数据验证过程详解
2019/07/26 Python
python绘制封闭多边形教程
2020/02/18 Python
Django+python服务器部署与环境部署教程详解
2020/03/30 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
详细的大学生创业计划书模板
2014/01/27 职场文书
世界读书日的活动方案
2014/08/20 职场文书
党员“四风”问题批评与自我批评思想汇报
2014/10/06 职场文书
2015年党建工作目标责任书
2015/05/08 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书
Python面向对象之内置函数相关知识总结
2021/06/24 Python
python模块与C和C++动态库相互调用实现过程示例
2021/11/02 Python