獨立部署小程序基于nodejs的服務器過程詳解
前言
完全自定義的部署小程序服務器, 不依托于騰訊云服務器體系.
以阿里云服務器為基礎建立.
服務器語言選用nodejs.
目的
- 實現(xiàn)https基本訪問請求
- 實現(xiàn)會話管理
- 實現(xiàn)socket長連接
- 一個基于socket的小游戲
源代碼在這里:
基礎要求
- 有一臺服務器(在外網(wǎng)能訪問的服務器)
- 有一個已經(jīng)備案的域名(必須備案)
- 有一個已經(jīng)申請的https證書域名(二級即可)
客戶端代碼:
我的實驗環(huán)境:
服務器:阿里云云服務器ecs
備案域名: 9z9z.vip
https證書(ca證書): (免費型DV SSL)
https證書申請域名: wuxing.9z9z.vip
配置nodejs環(huán)境
登錄服務器, 安裝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ù)和日志存儲目錄 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
在, 微信小程序后臺, 設置->開發(fā)設置中獲取.
上傳源代碼中的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
服務器配置成功.
設置小程序的服務器域名
打開小程序后臺, 設置 -> 開發(fā)設置. 設置服務器域名
打開小程序開發(fā)工具
配置appid
打開app.js, 將config.host改為設置的網(wǎng)址."wuxing.9z9z.vip"
完成.
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
nodejs redis 發(fā)布訂閱機制封裝實現(xiàn)方法及實例代碼
這篇文章主要介紹了nodejs redis 發(fā)布訂閱機制封裝的相關(guān)資料,這里提供了實現(xiàn)方法,及實例代碼,具有參考價值,需要的朋友可以參考下2016-12-12Dapr+NestJs編寫Pub及Sub裝飾器實戰(zhàn)示例
這篇文章主要為大家介紹了Dapr+NestJs編寫Pub及Sub裝飾器的實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08node.js中的http.response.removeHeader方法使用說明
這篇文章主要介紹了node.js中的http.response.removeHeader方法使用說明,本文介紹了http.response.removeHeader的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下2014-12-12Node.js里面的內(nèi)置模塊和自定義模塊的實現(xiàn)
這篇文章主要介紹了Node.js里面的內(nèi)置模塊和自定義模塊的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-05-05nodejs使用express獲取get和post傳值及session驗證的方法
這篇文章主要介紹了nodejs使用express獲取get和post傳值及session驗證的方法,結(jié)合實例形式分析了nodejs使用express實現(xiàn)獲取get和post傳值及session驗證功能的具體操作步驟與注意事項,需要的朋友可以參考下2017-11-11