1. 程式人生 > >小程序後臺配置 --- CentOS 7.3 64、nginx、node.js

小程序後臺配置 --- CentOS 7.3 64、nginx、node.js

工作 數據 同時 本地 ane get 端口 域名解析 time

小程序後臺配置

目的

配置一個小程序後臺的開發、發布環境,同時保留頂級域名另作他用。

需求:

  1. 一個域名
  2. 一個主機
  3. 一個小程序賬號

系統和軟件

這裏使用CentOS 7.3 64位系統nginxnode.js

一、域名到主機

購買域名和主機

這裏我買的是西部數碼的域名和騰訊雲的主機

解析域名到主機服務商

如果主機和域名是一個服務商,則跳過這一步

到域名購買商處,把域名解析到主機運營商,具體方法去主機運營商的域名解析查看
如,騰訊雲主機的解析方法是,

請到域名註冊商處將DNS修改為:f1g1ns1.dnspod.netf1g1ns2.dnspod.net
修改DNS服務器需要最長72個小時的全球生效時間,請耐心等待。

備案

在主機運營商處,為域名備案

設置二級域名

為什麽要設置二級域名,對我個人來說來說,有幾點:

  • 域名用於多個網站和多個小程序
  • 域名同時用於多個環境:開發環境、正式發布環境

這裏,我們先設置一個wx二級域名,一個wx-dev二級域名:
假設主域名是aaa.top
則在主機服務商上(域名已經解析到了這裏),設置域名解析:

www.aaa.top --> 官網,另作他用,這裏不管
wx.aaa.top --> 小下程序發布環境調用
wx-dev.aaa.top --> 小程序發布環境調用

同理,如需設置多個小程序,可以再添加多個二級域名

wx2.aaa.top --> 小下程序發布環境調用

wx2-dev.aaa.top --> 小程序發布環境調用

添加方法:

在騰訊雲中,已有前面兩行,我這裏添加後面三行
記錄類型 | 記錄類型 | 線路類型 | 記錄值
--- | --- | --- | ---
@|A|默認|119.29.107.153
www|A|默認|119.29.107.153
wx|A|默認|119.29.107.153
wx-dev|A|默認|119.29.107.153
wx-pre|A|默認|119.29.107.153

申請證書

因為小程序要求使用https協議,所以需要使用到ssl證書,在騰訊雲中,可以申請到免費的證書。
進入騰訊雲ssl頁面為我們的二級域名申請證書。

這裏申請兩個,wx.aaa.topwx-dev.aaa.top。申請完成後,將兩個證書下載到本地。在把其中Nginx文件夾中的兩個文件解壓出來,上傳到服務器中,保存至/data/release/nginx/

二、主機配置

這裏使用的是,nginx + node.js 搭建後臺
nginx可實現反代理,可以將不同的域名分配給不同的主機或者端口。
node.js用來寫後臺程序,你也可以用php等其他後端語言。

安裝 Nginx

這裏使用CentOS自帶的yum直接安裝 Nginx

yum -y install nginx  

安裝完成之後會顯示 Complete!,可以通過如下命令檢查Nginx是否安裝成功:

nginx -v  

這個命令會顯示 Nginx 的版本號,如果顯示如下信息,則安裝成功:

[root@VM_0_16_centos ~]# nginx -v  
nginx version: nginx/1.12.2

配置 Nginx 反向代理

參考 nginx配置
/etc/nginx/conf.d/中添加wxapp.conf:
註意,下面的wx.aaa.top應該替換成自己的wx二級域名,這樣就已經使得wx.aaa.top解析到自己的主機,且反代理到4001端口

server {
    listen      80;
    server_name wx.aaa.top;

    rewrite ^(.*)$ https://$server_name$1 permanent;
}
server {
    listen      443;
    server_name wx.aaa.top;

    ssl on;

    ssl_certificate           /data/release/nginx/1_wx.aaa.top_bundle.crt;
    ssl_certificate_key       /data/release/nginx/2_wx.aaa.top.key;
    ssl_session_timeout       5m;
    ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers               ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA;
    ssl_session_cache         shared:SSL:50m;
    ssl_prefer_server_ciphers on;

    location / {
        #proxy_pass http://app_weapp;
        proxy_pass http://localhost:4001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        
    }
}

同理,可以再為wx-dev.aaa.top添加反代理到4002端口.
這時,在瀏覽器中輸入,http://wx.aaa.top/,會跳轉到https://wx.aaa.top/
且如下顯示502信息,則到這一步,都是正確的。

502 Bad Gateway
nginx/1.12.2

安裝node.js

下載node.js壓縮包

先在node官網找到對應系統版本的node
復制鏈接,我這裏找到的是,linux64位,復制鏈接https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-x64.tar.xz
在linux下輸入

#wget https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-x64.tar.xz

解壓

#xz -d node-v8.9.4-linux-x64.tar.xz
#tar -xf node-v8.9.4-linux-x64.tar

解壓之後得到的文件夾移動到/usr/local/
為了方便這裏吧文件夾改名為node
測試能否運行
進入node/bin/
運行./node -v./npm -v
能顯示對應版本則為正確

配置node.js

要想node能夠在全局能夠使用,需要添加連接,在控制臺輸入下面命令能夠實現。其中/usr/local/nodebin/node為二進制node.js文件的目錄,根據上面的步驟,我已經把node整個文件夾移動到/usr/local所以這裏是:

#ln -s /usr/local/node/bin/node /usr/local/bin/node 
#ln -s /usr/local/node/bin/npm /usr/local/bin/npm

測試

[root@VM_0_16_centos bin]# node -v
v8.9.4
[root@VM_0_16_centos bin]# npm -v
5.6.0
到這裏node就安裝完成了

測試nginx和node.js能否正常工作

新建一個文件
vim server.js
server.js中保存下面代碼

var http = require('http');

http.createServer(function (request, response) {

    // 發送 HTTP 頭部 
    // HTTP 狀態值: 200 : OK
    // 內容類型: text/plain
    response.writeHead(200, {'Content-Type': 'text/plain'});

    // 發送響應數據 "Hello World"
    response.end('Hello World\n');
}).listen(4001);

// 終端打印如下信息
console.log('Server running at http://127.0.0.1:4001/');

啟動服務器。
node server.js
在本地電腦瀏覽器中,輸入wx.aaa.top。顯示Hello World則域名配置完成
同理,可以測試wx-dev.aaa.top

三、小程序後臺設置

進入微信公眾平臺
進入設置開發設置服務器域名修改
request合法域名一行填入我們的兩個二級域名

wx.aaa.top
wx-dev.aaa.top

保存後新建一個小程序,選擇模板

在app.jsz中發起request

wx.request({
  url: 'https://wx.aaa.top/login', 
  data: {
    x:10,
    y:20
  },
  header: {
    'content-type': 'application/json' // 默認值
  },
  success: res => {
    if (res.statusCode == 200) {
        console.log(res.data);
    }
  }
});

保存後,能在控制臺中看到,由wx.aaa.top發來的數據,則說明已經成功。

小程序後臺配置 --- CentOS 7.3 64、nginx、node.js