独立部署小程序基于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学习笔记之MongoDB模块
Jan 13 NodeJs
浅析Nodejs npm常用命令
Jun 14 NodeJs
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
Jan 12 NodeJs
初探nodeJS
Jan 24 NodeJs
Nodejs 发送Post请求功能(发短信验证码例子)
Feb 09 NodeJs
nodejs入门教程五:连接数据库的方法分析
Apr 24 NodeJs
Nodejs中使用phantom将html转为pdf或图片格式的方法
Sep 18 NodeJs
nodejs实现连接mongodb数据库的方法示例
Mar 15 NodeJs
nodejs基础之buffer缓冲区用法分析
Dec 26 NodeJs
用Electron写个带界面的nodejs爬虫的实现方法
Jan 29 NodeJs
Nodejs让异步变成同步的方法
Mar 02 NodeJs
详解NodeJS模块化
Jun 15 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
利用static实现表格的颜色隔行显示
2006/10/09 PHP
php设计模式 Observer(观察者模式)
2011/06/26 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
2019/09/03 PHP
jQuery 表单验证扩展(四)
2010/10/20 Javascript
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
详解JavaScript中的blink()方法的使用
2015/06/08 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
JavaScript给每一个li节点绑定点击事件的实现方法
2016/12/01 Javascript
Javascript 实现放大镜效果实例详解
2016/12/03 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
js原生Ajax的封装和原理详解
2017/03/11 Javascript
js实现多行文本框统计剩余字数功能
2017/03/28 Javascript
Angular 2 利用Router事件和Title实现动态页面标题的方法
2017/08/23 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
2017/09/14 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
详解Typescript 内置的模块导入兼容方式
2020/05/31 Javascript
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
[01:00:26]Ti4主赛事胜者组第一天 EG vs NEWBEE 1
2014/07/19 DOTA
Python字典操作简明总结
2015/04/13 Python
python3 shelve模块的详解
2017/07/08 Python
Python微信库:itchat的用法详解
2017/08/14 Python
Python 多线程Threading初学教程
2017/08/22 Python
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
快速了解Python开发环境Spyder
2020/06/29 Python
如何创建一个Flask项目并进行简单配置
2020/11/18 Python
CSS3 calc()会计算属性详解
2018/02/27 HTML / CSS
找到您丢失的钥匙、钱包和手机:Tile
2017/05/19 全球购物
考核评语大全
2014/04/29 职场文书
质量标语大全
2014/06/12 职场文书
三八妇女节主持词
2015/07/04 职场文书
导游词之韩国济州岛
2019/10/28 职场文书
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python