100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Nginx配置域名反向代理MQTT 配置mqtt /ws /wss访问域名连接。

Nginx配置域名反向代理MQTT 配置mqtt /ws /wss访问域名连接。

时间:2019-05-05 07:50:23

相关推荐

Nginx配置域名反向代理MQTT 配置mqtt /ws /wss访问域名连接。

有时候我们想通过域名的方式来进行mqtt的连接。

首先在阿里云上安装mqtt服务器端。本文mqtt服务器端ip地址为: xx.xx.67.177

并配置mqtt监听端口 tcp : 1883 , http /ws 为 8083

安装好之后下载mqttbox 工具进行测试连接。

一、使用TCP的方式验证mqtt服务器。

至此说明mqtt服务器 1883端口正常,并能通过mqtt客户端工具连接上。

二、使用ws 的方式验证mqtt服务器

下面讲使用nginx进行域名配置及反向代理。

准备 :申请一个域名,并解释到nginx 所在的机器上。

一、配置ws 的域名反向代理.

mqtt_ws.conf

map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream mqtt_ws_server { server xx.xx.67.177:8083; #可以配置多个,作为高可用 } server { listen 80; server_name ; #修改为自己的域名access_log /wwwlogs/mqtt_ws.log;#日志路径error_log /wwwlogs/mqtt_ws_err.log; #错误日志路径location / { proxy_pass http://mqtt_ws_server/mqtt; #这里是否带/mqtt路径处决于你mqtt服务端部署proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } }

可以将conf进行include进去就好了。

使用mqttbox进行验证代理。

二、配置域名访问支持wss (wss 和ws 的区别,就当https 和http吧详细度娘)

mqtt_wss.conf

map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream mqtt_wss_server { server xx.xxx.67.177:8083; #可配多个高可用} server { listen 443; server_name ; #域名ssl_certificate "/opt/nginx/cert/.pem";#要配证书ssl_certificate_key "/opt/nginx/cert/.key"; #要配证书keyssl_session_cache shared:SSL:1m;ssl_session_timeout 10m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;access_log /wwwlogs/mqtt_wss.log; #日志error_log /wwwlogs/mqtt_wss_err.log;location / { proxy_pass http://mqtt_wss_server/mqtt; #反向代理的地址proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } }

验证

这里的443也可以不加

三、配置反向代理Tcp的方式。

注意配置tcp 要使用nginx的stream服务节点。

mqtt_tcp.conf

stream {log_format proxy '$remote_addr [$time_local] ''$protocol $status $bytes_sent $bytes_received ''$session_time "$upstream_addr" ''"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';access_log /wwwlogs/tcp-access.log proxy;open_log_file_cache off;upstream mqtt_tcp_server {server xx.xx.67.177:1883;#高可用均衡配置server xx.xx.123.132:1883;} server {listen 18883; #监听端口 也可以使用1883#listen80; #则使用mqtt://:80proxy_connect_timeout 150s;proxy_timeout 150s;proxy_pass mqtt_tcp_server; #反向代理地址proxy_buffer_size 3M;tcp_nodelay on;}}

验证

验证结束。

至此已经可以通过域名进行mqtt/ws/wss 等访问了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。