1 端口介绍

  • 1883:MQTT 协议端口
  • 8084:MQTT/SSL 端口
  • 8083:MQTT/WebSocket 端口
  • 8080:HTTP API 端口
  • 18083:Dashboard 管理控制台端口

2 拉取镜像

docker pull emqx/emqx:latest
# 也可以拉去指定版本
docker pull emqx/emqx:v4.0.0

3 启动临时容器

其他小知识

选项 选项简写 说明
–detach -d 在后台运行容器,并且打印容器id。
–interactive -i 即使没有连接,也要保持标准输入保持打开状态,一般与 -t 连用。
–tty -t 分配一个伪tty,一般与 -i 连用。
docker run -dit --name emqx -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:latest# 避免跟rabbitmq的1883冲突
docker run -dit --name emqx -p 1884:1883 -p 8081:8081 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:latest

4 拷贝配置文件

拷贝配置文件到宿主机,这样修改宿主机的配置文件之后只需要重启容器,配置文件就会生效。左边是容器的路径,右边是要映射宿主机路径。

把配置文件拷贝出来就是为了之后的ssl证书配置。便于管理。

docker cp emqx:/opt/emqx/etc /home/emqx

5 删除临时容器

docker rm -f emqx

6 重新启动容器

在挂载之前要记得先创建需要挂载的文件夹

挂载全路径

docker run -d \
--name emqx \
-p 1883:1883 \
-p 8883:8883 \
-p 8083:8083 \
-p 8084:8084 \
-p 8081:8081 \
-p 18083:18083 \
-v /usr/local/emqx/etc:/opt/emqx/etc \
-v /usr/local/emqx/lib:/opt/emqx/lib \
-v /usr/local/emqx/data:/opt/emqx/data \
-v /usr/local/emqx/log:/opt/emqx/log \
emqx/emqx:latest

这里只需要映射出来etc目录,用于ssl的配置

docker run -dit \
--name emqx \
-p 1883:1883 \
-p 8883:8883 \
-p 8083:8083 \
-p 8084:8084 \
-p 8081:8081 \
-p 18083:18083 \
-v /home/emqx/etc:/opt/emqx/etc \
emqx/emqx:latest

7 访问测试

访问http://127.0.0.1:18083

默认密码为admin/public

如果要修改密码

//修改文件,再启动容器
vim /usr/local/emqx/etc/plugins/emqx_auth_username.conf

8 放入证书文件

通过自制证书或者去阿里云签发免费的证书下载下来,获得

bash脚本自动生成证书

#/bin/sh
rm -f ca.*
rm -f emqx.*
rm -f client.*
# 生成自签名的CA key和证书
openssl genrsa -out ca.key 2048
openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.pem -subj "/C=CN/ST=Jiangsu/L=Suzhou/O=XXX/CN=SelfCA"
#openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.pem# 生成服务器端的key和证书
openssl genrsa -out emqx.key 2048
openssl req -new -key ./emqx.key -config openssl.cnf -out emqx.csr
openssl x509 -req -in ./emqx.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out emqx.pem -days 3650 -sha256 -extensions v3_req -extfile openssl.cnf# 生成客户端key和证书
openssl genrsa -out client.key 2048
openssl req -new -key client.key -out client.csr -subj "/C=CN/ST=Jiangsu/L=Suzhou/O=XXX/CN=client"
openssl x509 -req -days 3650 -in client.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out client.pem

最好从阿里云或者腾讯云、华为云生成域名证书。证书下载可以下载nginx、tomcat……。这里我们下载其他类证书。


这里www.baidu.cn.key和www.baidu.cn.pem是从阿里云下载下来的证书文件。
直接找到宿主机映射出来的配置文件 /usr/local/emqx/etc/emqx.conf
在这里配置证书的目录

listener.wss.external.keyfile = etc/certs/my/www.baidu.cn.key
listener.wss.external.certfile = etc/certs/my//www.baidu.cn.pem

重启容器

docker restart emqx

9 测试

这里要注意配置了ssl证书后,要想使用ssl连接wss就不能使用ip访问wss了,必须使用域名!!!

10 添加微信小程序支持

这一步可以不用做。如果使用我的mqttjs

有的mqttjs没有输入端口号的地方,所以这里在nginx添加如下转发。通过https://域名/mqtt一样可以连接

```location = /mqtt {# 8083就是我们的emq的websocket的端口号proxy_pass http://my.yuming.cn:8083;proxy_redirect off;proxy_set_header Host my.yuming.cn: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";}```

11 emqx修改dashboard密码

emqx管理页面默认用户名密码是:admin/public

  1. 先进入容器内部
docker exec -it emqx /bin/bash
  1. 修改管理端密码
emqx_ctl admins passwd admin admin123

emqx的http鉴权和springboot集成

Docker部署Emqx并配置ssl支持微信小程序相关推荐

  1. SpringBoot项目配置SSL证书微信小程序jar包

    本文主要针对SpringBoot微信小程序jar包运行的项目如何配置SSL证书. 关于域名:请确定域名已经获得ICP备案,服务器对外端口开放. 根据⼩程序官⽅⽂档描述,微信⼩程序的wx.request ...

  2. 全平台知识付费系统源码 支持微信小程序+公众号+H5+PC端 含搭建部署教程

    分享一个全平台知识付费系统源码,支持微信小程序+微信公众号+H5+PC端,支持DIY风格装修,含完整程序包和详细的搭建教程. 系统特色功能一览: 1.支持视频课程.音频课程.图文课程.专栏课程等: 2 ...

  3. PHP开发B2C商城 微信小程序商城系统源码+数据库,轻量级前后端分离的电商系统,支持微信小程序 + H5+ 公众号 + APP

    项目介绍 一款轻量级.高性能.前后端分离的电商系统,支持微信小程序 + H5+ 公众号 + APP,前后端源码完全开源,看见及所得,完美支持二次开发,可学习可商用,让您快速搭建个性化独立商城. 完整代 ...

  4. 微信支持环信_环信客户互动云v5.39已发布:支持微信小程序接入

    环信客户互动云v5.39_产品更新说明 发布日期:2018-11-06 客服模式 质检中新增会话ID字段 质检中新增会话ID字段,与历史会话中的会话ID对应,支持根据会话ID搜索质检会话,以及在质检详 ...

  5. 开源全平台版知识付费系统源码 支持微信小程序+公众号+H5+PC端

    分享一个开源全平台版知识付费系统源码,系统支持微信小程序+公众号+H5+PC端,一套系统实现全端数据及用户体系全面打通,轻松实现店铺全网一站式运营.含完整代码包和详细搭建教程. 系统支持视频课程.音频 ...

  6. Webstorm 支持微信小程序开发插件 Wechat mini program support

    目录 支持微信小程序插件安装: Wechat mini program support, 插件官方文档 安装方法: 新建页面: 自动生成方法 自动生成元素选择器 快捷跳转4件套 问题 Webstorm ...

  7. html css 微信小程序,tailwindcss 支持微信小程序配置

    安装postcss插件 npm install -D postcss-class-rename postcss-class-rename 是将小程序不支持的css类重命名 tailwindcss配置移 ...

  8. 【视频课】快速掌握5大模型部署框架(NCNN+MNN+Tengine+TensorRT+微信小程序)

    前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...

  9. ECharts 全新大版本 4.0 正式发布 即将支持微信小程序中使用ECharts

    2018年1月16日,ECharts (echarts.baidu.com)发布了最新大版本 4.0,新版本在产品的性能.功能.易用性等各个方面进行了全面提升.和 ECharts 4.0 一起发布的还 ...

最新文章

  1. 使用dom4j解析XML例子
  2. 胡阳:汗水铺就代码之路,三分天注定,七分靠打拼
  3. 在pcDuino上使用蓝牙耳机玩转音乐
  4. Spring RESTful错误处理
  5. 自然语言处理-LDA主题模型
  6. lisp java_从Java调用的LISP代码
  7. MSN-LDL论文修改20211027RBY
  8. 2021高值人才职业发展洞察:连接、信任与赋能
  9. 软件对于英特尔意味着什么?
  10. 软件体系结构期末复习(快速入门考试)
  11. git原理学习记录:从基本指令到背后原理,实现一个简单的git
  12. 苹果vs剪辑下载_好用的短视频制作与剪辑APP工具盘点
  13. 【JUC】并发编程(二)
  14. OBS Studio 27.0.1版本编译
  15. 使用js拖拽盒子移动()
  16. Aztec协议上线:V神「匿名以太坊梦」成真
  17. Maven之Nexus局域网私服的搭建以及上传下载的测试
  18. android二维码制作
  19. 马云卸任CEO演讲全文
  20. 爬行动物两栖食物的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

热门文章

  1. vage mysql_MySql下视图的创建
  2. PHP and MySQL Web Development 5th英文版
  3. 【web课程设计网页规划与设计】基于社团活动主题题材设计 实现华南师范大学网站html模板(带设计说明 带psd)
  4. 华硕fl5600l拆机电池_华硕fl8000拆机图解
  5. 判断访问WEB的平台是电脑还是手机
  6. 【行业篇】二、汽车操作系统
  7. vue3+ts文档分页插入水印
  8. 上海招聘java程序员有哪些要求
  9. RFIDler:一款定义RFID的读、写、仿真器的开源软件
  10. 下载及安装mysql中出现的问题记录