Pages

Bài đăng phổ biến

Thursday, September 1, 2022

Resolved : Nginx reverse proxy for AWS IoT MQTT over TLS

Problem : you can not configure http to reverse proxy for aws iot mqtt ,  java client would return these errors : 
software.amazon.awssdk.crt.mqtt.MqttException: socket is closed.

at software.amazon.awssdk.crt.mqtt.MqttClientConnection.onConnectionComplete(MqttClientConnection.java:140)


Resolved : 


You must use nginx module: ngx_stream_proxy_module ( like network load balancer) this is a template to resolve : 


        Stream{

        map $ssl_preread_server_name $domain {
        stg-iot.yourdomain  stg-iot;
        iot.yourdomain prod-iot;
        }

        upstream stg-iot {
                server IoT-xxxxxx..ap-your_region-1.amazonaws.com:443;
        }

       upstream prod-iot {
                server IoT-xxxxxx..ap-your_region-1.amazonaws.com:443;
        }
  map $ssl_server_name $targetCert {
    stg-iot.yourdomain /etc/nginx/ssl/star_yourdomain.crt;
    iot.yourdomain /etc/nginx/ssl/star_yourdomain.crt;
  }

    map $ssl_server_name $targetCertKey {
    stg-iot.yourdomain /etc/nginx/ssl/star_yourdomain.key;
    iot.yourdomain /etc/nginx/ssl/star_yourdomain.key;
  }

        server {
                listen 443;
    ssl_certificate     $targetCert;
    ssl_certificate_key $targetCertKey;
                proxy_pass $domain;
                ssl_preread on;
        }

             } 

===============================================================

Feel free to use them without concern! 

Nginx reverse proxy for AWS IoT MQTT over TLS 

Nguyen Si Nhan

1 comment:

  1. Very useful configuration sample to setup Nginx Stream Proxy for MQTT protocol. Awesome big bro.

    ReplyDelete

Thanks for your join,we will be reply to you asap.