云网牛站
所在位置:首页 > Linux云服务器 > 在Linux系统中通过nginx配置微信小程序服务器的步骤

在Linux系统中通过nginx配置微信小程序服务器的步骤

2018-12-10 10:10:59作者:joyitsai稿源:linux站

本文介绍在 Linux 操作系统中通过 nginx 配置微信小程序服务器,以下是详细步骤:云服务器准备、域名准备、使用 ssh 工具连接服务器,安装需要的环境:(node.js、nginx、mysql5.7)、开始配置nginx、上传小程序demo服务端源码并测试成功。在Ubuntu系统中安装微信小程序开发工具一文也可以先参考下。

 

一.云服务器准备

可在阿里云购买轻量应用服务器或者ECS服务器,系统镜像选择 CentOS,目前用的比较多的免费 Linux 系统,和 ubuntu 基本一样,可以根据自己需要购买:

在Linux系统中通过nginx配置微信小程序服务器的步骤

 

二.域名准备

域名购买后,添加域名解析到前面购买的服务器 IP 地址上,然后需要申请 ssl 证书,如果大家安装的不是纯净的 centos 环境,阿里云配套安装的软件不是很好用,可以重置系统(这里使用 centos7.3)。

 

三.使用 ssh 工具连接服务器,安装需要的环境:(node.js、nginx、mysql5.7)

(1).安装 node.js

1.新建目录 www

mkdir /www

cd /www

2.下载 nodejs

wget https://npm.taobao.org/mirrors/node/v8.2.1/node-v8.2.1-linux-x64.tar.xz

3.解压

tar -xvf node-v8.2.1-linux-x64.tar.xz

4.测试是否安装成功

进入解压目录下的 bin 目录,执行 ls 命令:

cd node-v8.2.1-linux-x64/bin && ls  

有node 和 npm 测试  ./node -v 安装成功,现在 node 和 npm 还不能全局使用,做个链接,就可以全局使用了

[root@joyitsai bin]# ln -s /www/node-v8.2.1-linux-x64/bin/node /usr/local/bin/node

[root@joyitsai bin]# ln -s /www/node-v8.2.1-linux-x64/bin/npm /usr/local/bin/npm

[root@joyitsai bin]# cd ~

[root@joyitsai ~]# npm -v

5.3.0

[root@joyitsai ~]# node -v

v8.2.1

(2).安装nginx

Node.js 是单进程的,我们可以通过多开 Node.js 并配合 Nginx 来实现多进程 Node.js 负载均衡,并且一些静态文件我们也可以直接通过 Nginx 代理,提高性能。其中第一步就是安装 Nginx。通过 SSH 连接上云服务器,直接使用包管理工具 yum 安装 Nginx 即可:yum -y install nginx,安装完成之后会显示 Complete!,可以通过如下命令检查 Nginx 是否安装成功:nginx -v

(3).安装mysql5.7

配置YUM源:

1.下载mysql源安装包

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

2.安装mysql源

yum localinstall mysql57-community-release-el7-8.noarch.rpm

3.检查mysql源是否安装成功

yum repolist enabled | grep "mysql.*-community.*"

4.安装MySQL

yum install mysql-community-server 

5.启动MySQL服务

systemctl start mysqld 

6.查看MySQL的启动状态

systemctl status mysqld

在Linux系统中通过nginx配置微信小程序服务器的步骤

7.开机自启动mysql服务

systemctl enable mysqld

systemctl daemon-reload

8.修改Mysql的root本地登录密码

mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:

grep 'temporary password' /var/log/mysqld.log

2018-12-09T13:29:27.284766Z 1 [Note] A temporary password is generated for root@localhost: hy&dw(Tsp0GY

9.登录并修改默认密码

通过上面获取的本地默认密码进行初始登录:

mysql -u root -p

mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'yournewpassword'; 

在设置密码时,可能会报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements这是 mysql 初始化时,使用临时密码,修改自定义密码时,由于自定义密码比较简单,就出现了不符合密码策略的问题。

解决办法:

(1)、查看 mysql 初始的密码策略:

输入语句 SHOW VARIABLES LIKE 'validate_password%';进行查看:

在Linux系统中通过nginx配置微信小程序服务器的步骤

上面的语句可能会报错,因为你还没有设置自己的密码,不过我们知道有这样一个默认的密码策略就好。

(2)、然后需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,输入设值语句 set global validate_password_policy=LOW;进行设置:

mysql> set global validate_password_policy=LOW;

Query OK, 0 rows affected (0.00 sec)

(3)、当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 6 位的密码,设置 validate_password_length为全局参数为 6 即可,输入设值语句 set global validate_password_length=6;进行设置:

(4)、现在可以为 mysql 设置简单密码了,只要满足六位的长度即可,

set password = '123456'; 

可以看到修改成功,表示密码策略修改成功了!

9.新建一个数据库名为 cAuth,排序规则为 utf8mb4_unicode_ci,小程序后台会用到

mysql>CREATE DATABASE IF NOT EXISTS cAuth DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;

10.服务端使用的工具软件已经安装好了,下面导入ssl证书

去阿里云官方,查看你的域名,然后点击域名,进入域名基本信息页面:

在Linux系统中通过nginx配置微信小程序服务器的步骤

点击免费开启SSL证书:

在Linux系统中通过nginx配置微信小程序服务器的步骤

申请时需填写相关申请信息,通过验证即可下发SSL证书,下载已下发的SSL证书。

新建/data/release/nginx

使用sftp软件(FileZilla)或者用WinSCP软件连接服务器,把ssl证书放到/data/release/nginx目录下:

注意:可以将.pem证书文件重命名为.crt文件,二者都可在nginx.conf配置文件中配置ssl安全证书。

在Linux系统中通过nginx配置微信小程序服务器的步骤

 

四.开始配置nginx

1.上传完证书以后,可以开始配置 Nginx,修改/etc/nginx/nginx.conf,写入如下配置(请将配置里ywnz.com修改为你自己的域名,包括证书文件。

upstream app_weapp {

server localhost:5757;

keepalive 8;

}

server {

listen       80 default_server;

listen       [::]:80 default_server;

server_name  ywnz.com;

root         /usr/share/nginx/html;

rewrite ^(.*)$ https://$server_name$1 permanent;

# Load configuration files for the default server block.

include /etc/nginx/default.d/*.conf;

location / {

}

location /images/ {

root /data/release/weapp/uploadFiles/;

}

error_page 404 /404.html;

location = /40x.html {

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

}

}

# Settings for a TLS enabled server.

server {

listen 443;

# listen[::]:  443 ssl http2 default_server;

server_name ywnz.com;

root /data/release/weapp /uploadFiles;

ssl on;

ssl_certificate /data/release/nginx/ 1535530361992.pem;

ssl_certificate_key /data /release/nginx / 1535530361992.key;

ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

ssl_prefer_server_ciphers on;

location / {

proxy_pass http://app_weapp;

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;

}

location /images/ {

autoindex on;

}

location ~ \.(png|jpg) {

root /data/release/weapp/uploadFiles;

}

error_page 404 /404.html;

location = /40x.html {

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

}

}

2.然后在 ssh 中输入:nginx -t

如果显示如下信息,则配置成功:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

配置成功之后,输入 nginx回车,即可启动 Nginx。

如果访问 http://你的域名/weapp/a 会自动跳转到 HTTPS 上,并显示 502 Bad Gateway,则表示配置成功。

如果没有成功,使用netstat -ntpl查看下 nginx的https监听是否启动(443端口)

[root@joyitsai nginx]# netstat -ntpl

在Linux系统中通过nginx配置微信小程序服务器的步骤

至此,微信小程序服务端的环境已经完全搭建好了。

 

五.上传小程序demo服务端源码并测试

1.登陆小程序网站,注册账号,获取AppID(小程序ID),AppSecret(小程序密钥),配置服务器域名,域名需要备案后才能填写,备案全部操作可以在阿里云网上进行,大概2周左右。

下载小程序开发工具,同时下载demo源码。

2.使用开发工具打开demo源码

编辑server中的config.js(先在服务器上创建一下目录/data/release/weapp,也就是下面的rootPathname):

const CONF =  {

port:  '5757',

rootPathname:  '/data/release/weapp',

// 微信小程序 App ID

appId:  'wx8...',

// 微信小程序 App Secret

appSecret:  '7......',

// 是否使用腾讯云代理登录小程序

useQcloudLogin:  true,

/**

* MySQL 配置,用来存储 session 和用户信息

* 服务器将通过MySQL配置参数与MySQL数据库进行连接

*/

mysql:  {

host:  '127.0.0.1', // 指定mysql主机在本地

port:  3306, // 指定要连接的端口

user:  'root', // 指定连接mysql的用户身份

db:  'cAuth', // 数据库名

userdb:  'test', // 数据库表名

pass:  'yourmysqlpassword', // 数据库连接密码

char:  'utf8mb4' // 数据库类型

},

cos:  {

// 地区简称

region:  'ap-guangzhou',

// Bucket 名称

fileBucket:  'qcloudtest',

// 文件夹

uploadFolder:  ''

},

// 微信登录态有效期

wxLoginExpires:  7200,

// 其他配置 ...

serverHost:  'https://ywnz.com',

tunnelServerUrl:  'https://tunnel.ws.qcloud.la',

tunnelSignatureKey:  '27fb7d1c161b7ca52d73cce0f1d833f9f5b5ec89',

qcloudAppId:  '1257399680',

qcloudSecretId:  'AKID3zkLp9xL9nFdp2MyfCaFl6Tjz4yhNuKc',

qcloudSecretKey:  'HOK7i8MTWP6e4Zq471lKix868zgEcqto',

wxMessageToken:  'weixinmsgtoken',

networkTimeout:  30000

}

// 通过module.exports = CONF将接口暴露出去,require(../js文件名)调用接口

// 在其他js文件中,通过const config = require('../config') 可将CONF的接口赋给config

module.exports = CONF

3.修改好server后,修改下client中的host:"你申请的域名":

/**

* 小程序配置文件

*/

// 此处主机域名修改成你服务器的域名

var host = 'https://ywnz.com';

var config = {

// 下面的地址配合云端 Demo 工作

service: {

host,

// 登录地址,用于建立会话

loginUrl: `${host}/weapp/login`,

// 测试的请求地址,用于测试会话

requestUrl: `${host}/weapp/user`,

// 测试的信道服务地址

tunnelUrl: `${host}/weapp/tunnel`,

// 上传图片接口

uploadUrl: `${host}/weapp/upload`

}

};

module.exports = config;

4.都配置好以后,现在需要将server端的代码上传的服务器上的/data/release/weapp目录下:

在Linux系统中通过nginx配置微信小程序服务器的步骤

5.server代码上传后,cd 到/data/release/weapp,查看目录下的文件:

[root@joyitsai weapp]# ll

在Linux系统中通过nginx配置微信小程序服务器的步骤

6.代码传完后做如下操作:

1].输入以下命令切换npm源到淘宝镜像,防止官方镜像下载失败:

npm config set registry https://registry.npm.taobao.org 

2].使用npm安装全局依赖

npm install -g pm2

3].然后安装本地依赖:

npm install

4].接着使用 Demo 代码里的 tools/initdb.js 工具初始化数据库:

node tools/initdb.js

初始化成功则会提示“数据库初始化成功!” 。

顺利完成以上操作,就完成了微信小程序在自己服务器上的部署。直接访问 https://你的域名/weapp/login,会提示: {"code":-1,"error":"ERR_HEADER_MISSED"} 则表示配置成功。

 

结语

以上步骤为你讲述了在Linux系统中通过nginx配置微信小程序服务器,按照步骤配置好后就可以使用开发者工具来进行联调测试了。

 

相关主题

微信小程序Web开发工具中使用Git实现版本管理和协作开发

精选文章
热门文章