How to map multiple AWS LoadBalancer ports to a single instance port

amazon-elbamazon-web-services

I have setup like this — Two ports on my load balancer map to a single port on my instance (the instance checks the HTTP header and issues a HTTP redirect to the HTTPS site for any non HTTPS request). The AWS dashboard shows:

LB Proto| LB Port| Inst Proto| Inst Port| SSL Cert
---------------------------------------------------
HTTP    | 80     | HTTP      | 8080     | N/A   
HTTPS   | 443    | HTTP      | 8080     | my_ssl_cert 

On my instance, I can inspect the incoming traffic as follows:

sudo ngrep -q -d eth0 -W byline port 8080

This succeeds: (https to the load balancer)

curl -k https://111.111.111.111/

but this fails: (http to the load balancer)

curl     http://111.111.111.111/

(where 111.111.111.111 is the loadbalancer's IP)

Curl stalls and times out, and I never see activity on port 8080 on my instance with ngrep (I do when I send the first request).

What's up? How come my loadbalancer isn't forwarding ANY traffic received on port 80 to port 8080 on my instance?

Best Answer

As confirmed in comments, your issue was that your Load Balance security group was not configured to allow incoming requests at port 80.

Related Topic