独立部署小程序基于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读取memcache示例分享
Jan 02 NodeJs
Nodejs进程管理模块forever详解
Jun 01 NodeJs
nodejs简单实现中英文翻译
May 04 NodeJs
简单实现nodejs上传功能
Jan 14 NodeJs
NodeJs测试框架Mocha的安装与使用
Mar 28 NodeJs
详解nodejs微信公众号开发——4.自动回复各种消息
Apr 11 NodeJs
NodeJS链接MySql数据库的操作方法
Jun 27 NodeJs
深入解析nodejs HTTP服务
Jul 25 NodeJs
nodejs基于WS模块实现WebSocket聊天功能的方法
Jan 12 NodeJs
nodejs读取并去重excel文件
Apr 22 NodeJs
PHPStorm中如何对nodejs项目进行单元测试详解
Feb 28 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强制下载PDF文件示例
2014/01/17 PHP
php循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
2014/04/24 PHP
CodeIgniter集成smarty的方法详解
2016/05/26 PHP
解决tp5在nginx下修改配置访问的问题
2019/10/16 PHP
如何让页面加载完成后执行js
2013/06/26 Javascript
jquery.qrcode在线生成二维码使用示例
2013/08/21 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
vue 微信授权登录解决方案
2018/04/10 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
2019/04/20 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
react-router-dom 嵌套路由的实现
2020/05/02 Javascript
微信小程序手动添加收货地址省市区联动
2020/05/18 Javascript
[01:11:48]Fnatic vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python计算文本文件行数的方法
2015/07/06 Python
python 遍历字符串(含汉字)实例详解
2017/04/04 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
python打开使用的方法
2019/09/30 Python
专业技术职务聘任书
2014/03/29 职场文书
预备党员综合考察材料
2014/05/31 职场文书
世界读书日的活动方案
2014/08/20 职场文书
2015年出纳工作总结与计划
2015/05/18 职场文书
保留意见审计报告
2015/06/05 职场文书
高三毕业感言
2015/07/30 职场文书
《坐井观天》教学反思
2016/02/18 职场文书
有关信念的名言语录集锦
2019/12/06 职场文书
python 如何在 Matplotlib 中绘制垂直线
2021/04/02 Python
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript
CSS的class与id常用的命名规则
2021/05/18 HTML / CSS
详解MySQL中的主键与事务
2021/05/27 MySQL
Python合并多张图片成PDF
2021/06/09 Python
简单介绍Python的第三方库yaml
2021/06/18 Python