NSX Load Balancer HTTP or HTTPS Monitor Showing Pool Members As Down
search cancel

NSX Load Balancer HTTP or HTTPS Monitor Showing Pool Members As Down

book

Article ID: 307724

calendar_today

Updated On:

Products

VMware NSX

Issue/Introduction

Symptoms:
NSX Load Balancer monitor is reporting web server pool members as "DOWN", despite the pool members being reachable. 

When bypassing the load balancer and going directly to the server url, the page displays as expected. 

In the NSX Load Balancer logs, you see the following log entries:
 

2018-08-06T19:14:16+00:00 ###-edge-307-0 nagios:  [user.info] SERVICE ALERT: host_x.x.32.86;monitor:monitor-hom-nsx-lb-svcdockr-dtr-lab-47777::pool:pool-hom-nsx-lb-svcdockr-dtr-lab-47777::member:X.X.32.86::type:haproxy;CRITICAL;HARD;3;HTTP CRITICAL - Invalid HTTP response received from host on port 443: HTTP/1.1 400 Bad Request: missing required Host header
2018-08-06T19:14:18+00:00 ###-edge-307-0 nagios:  [user.info] SERVICE ALERT: host_x.x.32.88;monitor:monitor-hom-nsx-lb-svcdockr-dtr-lab-47777::pool:pool-hom-nsx-lb-svcdockr-dtr-lab-47777::member:x.x.32.88::type:haproxy;CRITICAL;HARD;3;HTTP CRITICAL - Invalid HTTP response received from host on port 443: HTTP/1.1 400 Bad Request: missing required Host header
2018-08-06T19:14:20+00:00 ###-edge-307-0 nagios:  [user.info] SERVICE ALERT: host_x.x.32.84;monitor:monitor-hom-nsx-lb-svcdockr-dtr-lab-47777::pool:pool-hom-nsx-lb-svcdockr-dtr-lab-47777::member:x.x.32.84::type:haproxy;CRITICAL;HARD;3;HTTP CRITICAL - Invalid HTTP response received from host on port 443: HTTP/1.1 400 Bad Request: missing required Host header

Environment

VMware NSX for vSphere 6.4.x
VMware NSX for vSphere 6.3.x

Cause

This message --  "Invalid HTTP response received from host on port 443: HTTP/1.1 400 Bad Request: missing required Host header" -- indicates that the backend server does not support the HTTP/1.0 version used by the load balancer monitor.

It's likely that the server only supports the HTTP/1.1 version which requires a "Host" header.

When it receives the monitor request without the required host header, the backend server rejects the request and the pool shows as "DOWN."

Resolution

Currently, there is no resolution for this issue.

Workaround:
To workaround this issue, add a "Host" header to the extensions field in the HTTP/HTTPS monitor extension for example:
header="Host: app1.example.com". 

In the above example, you will change the "app1.example.com" to the FQDN of one of the pool members as displayed in the image below:



Apply the change, and the pool should come UP immediately. 
You can add additional Host header extensions to include all pool members.