阿里云安装mqtt服务

二、阿里云安装mqtt服务

搭建一个云端mqtt服务器同时实现微信小程序433端口消息转发
先购买一台vps ,之前买的腾讯的到期了换了阿里云,学生价120一年,最低配1核1G
在这里插入图片描述
首先安装mqtt服务(参考第一篇第二节)
在这里插入图片描述
参考文档安装
在这里插入图片描述
手机下载个mqtt tool测试一下
在这里插入图片描述
连接成功。云端mqtt服务算是搭好了

然后安装微信小程序443转发服务,使能通过微信小程序连接至云端mqtt控制宿舍的门锁

这里装了好几遍,包括重装系统,踩了各种坑,发现域名证书过期了。。。

首先安装nginx1.17.6

1、安装依赖环境

yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre* gd-* GeoIP* git

2、创建nginx运行用户

useradd -M -s /sbin/nologin nginx

3、下载pcre包并解压

wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
tar zxvf pcre-8.43.tar.gz -C /usr/local/src/

4、下载openssl包并解压

wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz
tar zxvf openssl-1.1.1d.tar.gz -C /usr/local/src/

5、下载zlib包并解压

wget http://zlib.net/zlib-1.2.11.tar.gz
tar zxvf zlib-1.2.11.tar.gz -C /usr/local/src/

6、下载brotli

cd /usr/local/
git clone --depth=1 https://github.com/google/ngx_brotli.git
cd ngx_brotli && git submodule update --init

7、下载nginx包并解压

wget http://nginx.org/download/nginx-1.17.6.tar.gz
tar zxvf nginx-1.17.6.tar.gz -C /usr/local/src/
cd /usr/local/src/nginx-1.17.6/

8、编译

./configure --prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-ipv6  \
--with-http_dav_module \
--with-http_stub_status_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_ssl_module \
--http-client-body-temp-path=/usr/local/nginx/client/ \
--http-proxy-temp-path=/usr/local/nginx/proxy/ \
--http-fastcgi-temp-path=/usr/local/nginx/fcgi/ \
--http-uwsgi-temp-path=/usr/local/nginx/uwsgi \
--http-scgi-temp-path=/usr/local/nginx/scgi \
--with-http_geoip_module \
--with-http_gzip_static_module \
--with-file-aio \
--with-http_image_filter_module \
--with-http_realip_module \
--with-pcre=/usr/local/src/pcre-8.43 \
--with-zlib=/usr/local/src/zlib-1.2.11 \
--with-openssl=/usr/local/src/openssl-1.1.1d \
--add-module=/usr/local/ngx_brotli \
--with-http_v2_module
 
make && make install

9、配置环境变量

vim /etc/profile.d/nginx.sh
export PATH=$PATH:/usr/local/nginx/sbin  
source /etc/profile

10、配置启动脚本

vim /etc/init.d/nginx

添加以下代码


#! /bin/bash
#chkconfig: 2345 80 90
#description:nginx run
# chkconfig: - 85 15
# description: nginx is a World Wide Web server. It is used to serve
# nginx启动脚本
# @author  Devil
# @version  0.0.1
# @date    2017-05-29
 
PATH=/usr/local/nginx/
DESC="nginx1"
NAME=nginx
DAEMON=$PATH/sbin/$NAME
CONFIGFILE=$PATH/conf/$NAME.conf
PIDFILE=$PATH/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit 0
do_start()
{
  $DAEMON -c $CONFIGFILE || echo -n "nginx already running"
}
do_stop()
{
  $DAEMON -s stop || echo -n "nginx not running"
}
do_reload()
{
  $DAEMON -s reload || echo -n "nginx can't reload"
}
case "$1" in
  start)
    echo -n "Starting $DESC: $NAME"
    do_start
    echo "."
  ;;
  stop)
    echo -n "Stopping $DESC: $NAME"
    do_stop
    echo "."
  ;;
  reload|graceful)
    echo -n "Reloading $DESC configuration..."
    do_reload
    echo "."
  ;;
  restart)
    echo -n "Restarting $DESC: $NAME"
    do_stop
    do_start
    echo "."
  ;;
  *)
    echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
    exit 3
  ;;
esac
exit 0

11、添加执行权限

chmod +x /etc/init.d/nginx

12、设置开机自启动

chkconfig --add nginx
chkconfig nginx on

13、把域名证书导入服务器
在这里插入图片描述
14、配置nginx.config
在这里插入图片描述
打开后添加下面的代码


server {
    listen 443 ssl;
    server_name www.自己的域名 ; 
   
    ssl_certificate /usr/local/nginx/1_自己的域名_bundle.crt;
    ssl_certificate_key /usr/local/nginx/2_自己的域名.wang.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;

    location / {
        root   html; 
        index  index.html index.htm;
    }

    location = /mqtt {
      
        # 8083就是我们的emq的websocket的端口号
        proxy_pass http://www.自己的域名:8083;
        proxy_redirect off;
        proxy_set_header Host www.自己的域名:8083;

        proxy_set_header Sec-WebSocket-Protocol mqtt;
        
        # 这个是与你的 js客户端的库有关系,本博文的不需要,为了兼顾以后小伙伴,我这里注释了下!
        #more_clear_headers Sec-WebSocket-Protocol;

        # 这些都是 websocket必须要配置的
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        }
}

配置完成。

打开手机微信小程序测试一下
在这里插入图片描述
连接成功

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页