nginx-plus and nginx-asg-sync

Matthew VK3EVL hitman at itglowz.com
Fri Apr 27 06:42:45 UTC 2018


Hi all,

New to nginx so still finding my way around. I am running nginx-plus on 
amazon linux through AWS.
I have setup nginx-asg-sync and i find i have 2 problems.

The main one is sync isn't working. The nginx logs are spewing out

2018/04/27 06:19:24 [error] 21780#21780: *492 missing "upstream" 
argument, client: 127.0.0.1, server: , request: "GET /upstream_conf 
HTTP/1.1", host: "127.0.0.1:8080"
2018/04/27 06:19:29 [error] 21781#21781: *494 missing "upstream" 
argument, client: 127.0.0.1, server: , request: "GET /upstream_conf 
HTTP/1.1", host: "127.0.0.1:8080"
2018/04/27 06:19:29 [error] 21781#21781: *495 missing "upstream" 
argument, client: 127.0.0.1, server: , request: "GET /upstream_conf 
HTTP/1.1", host: "127.0.0.1:8080"
2018/04/27 06:19:34 [error] 21781#21781: *497 missing "upstream" 
argument, client: 127.0.0.1, server: , request: "GET /upstream_conf 
HTTP/1.1", host: "127.0.0.1:8080"

To me that says that nginx-asg-sync isn't passing any parameters.

nginx 
config---------------------------------------------------------------------------

server {
         # Status page is enabled on port 8080 by default.
         listen 8080;

         # Status zone allows the status page to display statistics for 
the whole server block.
         # It should be enabled for every server block in other 
configuration files.
         status_zone status-page;

         # In case of nginx process listening on multiple IPs you can 
restrict status page
         # to single IP only
         # listen 10.2.3.4:8080;

         # HTTP basic Authentication is enabled by default.
         # You can add users with any htpasswd generator.
         # Command line and online tools are very easy to find.
         # You can also reuse your htpasswd file from Apache web server 
installation.
         #auth_basic on;
         #auth_basic_user_file /etc/nginx/users;

         # It is recommended to limit the use of status page to admin 
networks only
         # Uncomment and change the network accordingly.
         #allow 10.0.0.0/8;
         #deny all;

         # NGINX provides a sample HTML status page for easy dashboard view
         root /usr/share/nginx/html;
         location = /status.html { }

         # Standard HTTP features are fully supported with the status page.
         # An example below provides a redirect from "/" to "/status.html"
         location = / {
                 return 301 /status.html;
         }

         # Main status location. HTTP features like authentication, 
access control,
         # header changes, logging are fully supported.
         location /status {
                 status;
                 status_format json;
         }

         location /upstream_conf {
                 upstream_conf;
         }
}

stream {
         upstream mqtt_cluster {
                 state /var/lib/nginx/state/mqtt_cluster.conf;
         }

         server {
                 listen 1883;
                 proxy_pass mqtt_cluster;
                 status_zone mqtt_servers;
         }

         upstream coap_cluster {
                 state /var/lib/nginx/state/coap_cluster.conf;
         }

         server {
                 listen 5683 udp;
                 proxy_bind 10.130.3.170:6000;
                 proxy_pass coap_cluster;
                 status_zone coap_servers;
                 proxy_responses 1;
         }

}

aws.yaml-------------------------------------------------------------------------------------

region: us-east-2
upstream_conf_endpoint: http://127.0.0.1:8080/upstream_conf
status_endpoint: http://127.0.0.1:8080/status
sync_interval_in_seconds: 5
upstreams:
  - name: mqtt_cluster
    autoscaling_group: xxxxx
    port: 1883
    kind: stream
  - name: coap_cluster
    autoscaling_group: xxxxx
    port: 5683
    kind: stream


Is there anything that looks out of place there?

Cheers
Matthew



More information about the nginx mailing list