独立部署小程序基于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 相关文章推荐
基于promise.js实现nodejs的promises库
Jul 06 NodeJs
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
Sep 26 NodeJs
nodejs通过phantomjs实现下载网页
May 04 NodeJs
浅谈Nodejs中的作用域问题
Dec 26 NodeJs
详解nodejs微信公众号开发——6.自定义菜单
Apr 13 NodeJs
详解nodejs模板引擎制作
Jun 14 NodeJs
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
Jul 05 NodeJs
详解nodejs通过代理(proxy)发送http请求(request)
Sep 22 NodeJs
nodejs同步调用获取mysql数据时遇到的大坑
Mar 02 NodeJs
nodejs文件夹深层复制功能
Sep 03 NodeJs
nodejs实现UDP组播示例方法
Nov 04 NodeJs
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
Nov 18 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
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
php递归使用示例(php递归函数)
2014/02/14 PHP
PHP中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
PHP速成大法
2015/01/30 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
2015/09/22 PHP
PHP三种方式实现链式操作详解
2017/01/21 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
php自动加载代码实例详解
2021/02/26 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
Mootools 1.2教程 同时进行多个形变动画
2009/09/15 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
封装的jquery翻页滚动(示例代码)
2013/11/18 Javascript
javascript打印html内容功能的方法示例
2013/11/28 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
2017/07/08 jQuery
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
python使用multiprocessing模块实现带回调函数的异步调用方法
2015/04/18 Python
python 中random模块的常用方法总结
2017/07/08 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
2017/11/08 Python
使用python对文件中的数值进行累加的实例
2018/11/28 Python
Python API len函数操作过程解析
2020/03/05 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
使用CSS3美化HTML表单的技巧演示
2016/05/17 HTML / CSS
加拿大时尚潮流大码女装购物网站:Addition Elle
2018/04/02 全球购物
化石印度尼西亚在线商店:Fossil Indonesia
2019/03/11 全球购物
北京-环亚运商测试题.net程序员初步测试题
2013/05/28 面试题
化工专业应届生求职信
2013/11/08 职场文书
就业自荐信
2013/12/04 职场文书
高中英语教学反思
2014/02/04 职场文书
营销总监岗位职责
2014/09/16 职场文书
二审答辩状范文
2015/05/22 职场文书
电影开国大典观后感
2015/06/04 职场文书
社区安全温馨提示语
2015/07/14 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书