Question
The backend ECS instances frequently receive GET requests even if there is no User access, and the origin IP is an intranet IP,User-Agent is displayed as KeepAliveClient.
Cause
If you select TCP as the listener protocol but select HTTP as the health check, the back-end health check by SLB is checked by using the GET method, rather than the HEAD method.
Answer
We recommend that you set the listener protocol and the health check protocol to the same protocol, such as HTTP or HTTPS. In this case, the SLB uses the HEAD method to Health Check. For more information, see method 1. Alternatively, you can change to TCP. The TCP health check is based on network layer detection, which sends SYN packets to detect whether the server port is alive, and the load on backend ECS instances is small. For more information, see method 2.
Method 1
Create an HTTP or HTTPS listener. For more information, see configure health check.
Method 2
- Log on to the SLB console, select the target region, and click the instance ID of the target SLB instance.
- Click the listener tab and then click modify listener configurations.>Next step>Next, click modify.
- Change the protocol of the health check from HTTP to TCP and click next.>Submit.
Application scope
- SLB