emqx5.8.9 通过nginx做ssl加密后是否能够通过未加密的链接+1883端口访问,也就是是否能够同时支持加密和未加密的访问。
可以,同时支持。
关键点是把明文和 TLS 分成两个 listener:1883(明文)和 8883(TLS)。
如果你是 Nginx 做 TLS 终止,常见做法有两种:
- Nginx 监听 8883(TLS)并转发到 EMQX 1883(明文)
- EMQX 自己监听 8883(TLS),Nginx 只做四层转发或不经过 Nginx
EMQX 5.8.9 示例:
listeners.tcp.default {
bind = "0.0.0.0:1883"
}
listeners.ssl.default {
bind = "0.0.0.0:8883"
ssl_options {
certfile = "${EMQX_ETC_DIR}/certs/server.pem"
keyfile = "${EMQX_ETC_DIR}/certs/server.key"
}
}
如果你要“同时走 Nginx”,就再在 Nginx stream 里分别开 1883/8883 两个 upstream;不要把 TLS 和非 TLS 混在同一个端口。