獨(dú)立部署小程序基于nodejs的服務(wù)器過(guò)程詳解
前言
完全自定義的部署小程序服務(wù)器, 不依托于騰訊云服務(wù)器體系.
以阿里云服務(wù)器為基礎(chǔ)建立.
服務(wù)器語(yǔ)言選用nodejs.
目的
- 實(shí)現(xiàn)https基本訪問(wèn)請(qǐng)求
- 實(shí)現(xiàn)會(huì)話管理
- 實(shí)現(xiàn)socket長(zhǎng)連接
- 一個(gè)基于socket的小游戲
源代碼在這里:
基礎(chǔ)要求
- 有一臺(tái)服務(wù)器(在外網(wǎng)能訪問(wèn)的服務(wù)器)
- 有一個(gè)已經(jīng)備案的域名(必須備案)
- 有一個(gè)已經(jīng)申請(qǐng)的https證書(shū)域名(二級(jí)即可)
客戶端代碼:


我的實(shí)驗(yàn)環(huán)境:
服務(wù)器:阿里云云服務(wù)器ecs
備案域名: 9z9z.vip
https證書(shū)(ca證書(shū)): (免費(fèi)型DV SSL)
https證書(shū)申請(qǐng)域名: wuxing.9z9z.vip
配置nodejs環(huán)境
登錄服務(wù)器, 安裝nodejs環(huán)境
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash - yum install -y nodejs
查看nodejs版本.
node -v
安裝配置mongode環(huán)境
# 安裝mongodb及客戶端工具
yum install mongodb-server mongodb -y
#建立mongo數(shù)據(jù)和日志存儲(chǔ)目錄
mkdir -p /data/mongodb
mkdir -p /data/logs/mongodb
# 啟動(dòng)mongo
mongod --fork --dbpath /data/mongodb --logpath /data/logs/mongodb/weapp.log
# 鍵入mongo控制臺(tái),添加用戶
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服務(wù)器管理器
npm install pm2 -g
修改源代碼中的appid和appSecretId
在, 微信小程序后臺(tái), 設(shè)置->開(kāi)發(fā)設(shè)置中獲取.

上傳源代碼中的server目錄到服務(wù)器目錄,安裝node依賴(lài)包
npm install
啟動(dòng)服務(wù)器
pm2 start app.js
配置nginx, 部署https證書(shū)
安裝nginx服務(wù)器
yum install nginx -y
將申請(qǐng)的ssl證書(shū)上傳到/etc/nginx目錄中.
打開(kāi)新建配置/etc/nginx/conf.d/ssl.conf
# WebSocket 配置
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 443;
server_name wuxing.9z9z.vip; # 改為綁定證書(shū)的域名
# ssl 配置
ssl on;
ssl_certificate 214355946590.pem; # 改為自己申請(qǐng)得到的 crt 文件的名稱(chēng)或者絕對(duì)路徑
ssl_certificate_key 214355946590.key; # 改為自己申請(qǐng)得到的 key 文件的名稱(chēng)或者絕對(duì)路徑
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;
}
}
重新啟動(dòng)nginx
service nginx reload 或者 nginx -s reload
此時(shí)直接在瀏覽器中會(huì)有正常輸出的字符串:Response from express
服務(wù)器配置成功.
設(shè)置小程序的服務(wù)器域名
打開(kāi)小程序后臺(tái), 設(shè)置 -> 開(kāi)發(fā)設(shè)置. 設(shè)置服務(wù)器域名

打開(kāi)小程序開(kāi)發(fā)工具
配置appid

打開(kāi)app.js, 將config.host改為設(shè)置的網(wǎng)址."wuxing.9z9z.vip"

完成.
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
nodejs redis 發(fā)布訂閱機(jī)制封裝實(shí)現(xiàn)方法及實(shí)例代碼
這篇文章主要介紹了nodejs redis 發(fā)布訂閱機(jī)制封裝的相關(guān)資料,這里提供了實(shí)現(xiàn)方法,及實(shí)例代碼,具有參考價(jià)值,需要的朋友可以參考下2016-12-12
Dapr+NestJs編寫(xiě)Pub及Sub裝飾器實(shí)戰(zhàn)示例
這篇文章主要為大家介紹了Dapr+NestJs編寫(xiě)Pub及Sub裝飾器的實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
node.js中的fs.fstatSync方法使用說(shuō)明
這篇文章主要介紹了node.js中的fs.fstatSync方法使用說(shuō)明,本文介紹了fs.fstatSync的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
使用nodeAPI時(shí)遇到過(guò)異步問(wèn)題解決
這篇文章主要為大家介紹了使用nodeAPI時(shí)遇到過(guò)異步問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
node.js中的http.response.removeHeader方法使用說(shuō)明
這篇文章主要介紹了node.js中的http.response.removeHeader方法使用說(shuō)明,本文介紹了http.response.removeHeader的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
Node.js里面的內(nèi)置模塊和自定義模塊的實(shí)現(xiàn)
這篇文章主要介紹了Node.js里面的內(nèi)置模塊和自定義模塊的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
nodejs使用express獲取get和post傳值及session驗(yàn)證的方法
這篇文章主要介紹了nodejs使用express獲取get和post傳值及session驗(yàn)證的方法,結(jié)合實(shí)例形式分析了nodejs使用express實(shí)現(xiàn)獲取get和post傳值及session驗(yàn)證功能的具體操作步驟與注意事項(xiàng),需要的朋友可以參考下2017-11-11

