我正在尝试设置一个反向代理,将 localhost:8081 解析为安装在另一台计算机上的代理。
我的 Nginx 配置文件是:
worker_processes 1;
events {
worker_connections 1024;
}
server {
listen 8081;
server_name localhost;
location / {
proxy_pass tcp://192.168.1.177:1883;
}
}
但是当我尝试使用以下命令连接到代理(从我配置 Nginx 的机器)时
mosquitto_sub -h localhost -p 8081 -t "stat/tasmota_8231A8/POWER1"
我收到错误连接被拒绝。
编辑:
Mosquitto 代理配置:
persistence true
persistence_location /var/lib/mosquitto/
include_dir /etc/mosquitto/conf.d
listener 1883
allow_anonymous true
编辑
我尝试使用这个 nginx 的配置文件
工作进程 1;
events {
worker_connections 1024;
}
stream {
listen 8081;
proxy_pass 192.168.1.77:1883;
}
这不适用于本机 MQTT。
您配置的是 HTTP 代理,但 MQTT != HTTP。
您需要将 nginx 配置为流代理。例如
stream {
server {
listen 8081;
proxy_pass 192.168.1.77:1883;
}
}
https://docs.nginx.com/nginx/admin-guide/tcp-udp-load-balancer/
或者配置 mosquitto 支持基于 WebSockets 的 MQTT(假设客户端也支持此功能)。然后,您可以使用基于 HTTP 的代理作为通过 HTTP 的 WebSockets 引导程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)