美文网首页程序员小程序
合并微信小程序中的会话管理和业务服务器

合并微信小程序中的会话管理和业务服务器

作者: 赞记 | 来源:发表于2017-12-28 22:30 被阅读0次

    前段时间开始了第一个小程序,但毕竟不是全职开发,眼看小程序开发未完,3个月的免费使用就要到期了。这可犯难了,如果要续费3台主机,对于未推出产品的个人用户,将是一笔不小的花费。于是有一个想法,将原来的会话管理服务器和业务服务器合并到一台主机上,这样就可以省掉一台云主机的费用。

    云服务器列表 到期啦!!!!

    文件迁移

    因为两台服务器的镜像是不同的,里面的环境也不同。业务服务器是nginx+php-fpm的环境,而会话服务器是LAMP (Apache)。

    首先把登录会话服务器,把文件传到业务服务器来。

    会话服务器(172.16.0.15) /opt/lampp/htdocs/mina_auth
    迁移到 ->
    业务服务器(172.16.0.8) /data/release/session-wafer/mina_auth

    [root@VM_0_15_centos htdocs]# pwd
    /opt/lampp/htdocs
    [root@VM_0_15_centos htdocs]# ls
    mina_auth  update_mina.sh
    [root@VM_0_15_centos htdocs]# tar czvf session.tar.gz mina_auth

    打包完成之后,把文件通过scp复制过去。
    scp /opt/lampp/htdocs/session.tar.gz root@172.16.0.8:/data/release/

    文件复制

    然后,登录业务服务器

    停掉php-fpm服务,命令:
    kill -QUIT `cat /run/php-fpm/php-fpm.pid`

    停掉nginx服务,命令:
    nginx -s stop

    解压session.tar.gz命令:tar xzvf session.tar.gz

    把mina_auth创建到正确的目录下面。

    设置nginx

    因为业务服务器已经跑在了80端口,因而我们现在把会话服务器配置到8080端口会更加合理。所以我们是让一个nginx同时支持多个端口。

    默认nginx有两个配置文件

    - /etc/nginx/nginx.conf 这个是主配置文件,打开查看可以发现在末端它引用了目录 /etc/nginx/conf.d 里面的所有配置文件;
    - /etc/nginx/conf.d/php-weapp-demo.conf 这个是80端口的业务服务器的配置;(我个人把它改了名字 application-wafer.conf)

    把application-wafer.conf复制一份,起名为session-wafer.conf,并修改下面的内容。

    这个时候,似乎掺的配置都修改完成了,但是还不能运行起来的,必须在程序上做一些修改。特别是加解密部分,可是花了赞哥成天的时间找出来。

    修改小程序sdk配置

    位置: /etc/qcloud/sdk.config

    把这个地址改成你业务服务器本机的地址。如,我从 172.16.0.15 变成了 172.16.0.8:8080

    修改解密算法

    为这个问题我找了一天时间,非常郁闷。

    位置:/data/release/session-wafer/mina_auth/system/wx_decrypt_data/new/pkcs7Encoder.php

    问题描述:

    在会话服务器里,mcrypt插件是已经随LAMP安装了的,而在业务服务器,并没有这个插件。请看下面的phpinfo。(你需要在php.ini里面把phpinfo生产才能查看)

    会话服务器里mcrypt是enabled的

    原来打算在业务服务器上安装mcrypt插件,但是查看php的官网,特别是php 7.1后,mcrypt是特别不建议使用的,其可以用openssl替代。

    $decrypted = openssl_decrypt($aesCipher, 'aes-128-cbc', $this->key, OPENSSL_RAW_DATA, $aesIV);

    修改后的效果为:

    重新启动服务器

    启动nginx和php-fpm,直接高点命令nginx和php-fpm

    启动两个服务

    测试工作

    curl http://localhost/
    curl http://localhost:8080/mina_auth/

    注意:8080端口是默认不能通过外网访问进来的,只能通过VPC内网。

    相关文章

      网友评论

        本文标题:合并微信小程序中的会话管理和业务服务器

        本文链接:https://www.haomeiwen.com/subject/lrxbgxtx.html