{
"$schema": "https://json-structure.org/meta/core/v0/#",
"name": "HTTP Upstream Server",
"type": "object",
"members": {
"id": {
"description": "The ID of the server.",
"type": "int32",
"readOnly": true,
"example": 0
},
"server": {
"description": "An address of the server.",
"type": "string",
"example": "example-server"
},
"service": {
"description": "The service parameter value of the server directive.",
"type": "string",
"example": "example-service"
},
"name": {
"description": "The name of the server specified in the server directive.",
"type": "string",
"readOnly": true,
"example": "my_shared_zone"
},
"backup": {
"description": "A boolean value indicating whether the server is a backup server.",
"type": "boolean",
"example": false
},
"weight": {
"description": "Weight of the server.",
"type": "int32",
"example": 0
},
"state": {
"description": "Current state, which may be one of \u201cup\u201d, \u201cdraining\u201d, \u201cdown\u201d, \u201cunavail\u201d, \u201cchecking\u201d, and \u201cunhealthy\u201d.",
"type": "string",
"enum": [
"up",
"draining",
"down",
"unavail",
"checking",
"unhealthy"
],
"example": "example-state"
},
"active": {
"description": "The current number of active connections.",
"type": "int32",
"readOnly": true,
"example": 5
},
"ssl": {
"type": "object",
"members": {
"handshakes": {
"description": "The total number of successful SSL handshakes.",
"type": "int32",
"readOnly": true,
"example": 79572
},
"handshakes_failed": {
"description": "The total number of failed SSL handshakes.",
"type": "int32",
"readOnly": true,
"example": 21025
},
"session_reuses": {
"description": "The total number of session reuses during SSL handshake.",
"type": "int32",
"readOnly": true,
"example": 15762
},
"no_common_protocol": {
"description": "The number of SSL handshakes failed because of no common protocol.",
"type": "int32",
"example": 4
},
"handshake_timeout": {
"description": "The number of SSL handshakes failed because of a timeout.",
"type": "int32",
"example": 0
},
"peer_rejected_cert": {
"description": "The number of failed SSL handshakes when nginx presented the certificate to the upstream server but it was rejected with a corresponding alert message.",
"type": "int32",
"example": 0
},
"verify_failures": {
"description": "SSL certificate verification errors",
"type": "object",
"members": {
"expired_cert": {
"description": "An expired or not yet valid certificate was presented by an upstream server.",
"type": "int32",
"example": 2
},
"revoked_cert": {
"description": "A revoked certificate was presented by an upstream server.",
"type": "int32",
"example": 1
},
"hostname_mismatch": {
"description": "Server's certificate doesn't match the hostname.",
"type": "int32",
"example": 2
},
"other": {
"description": "Other SSL certificate verification errors.",
"type": "int32",
"example": 1
}
},
"example": {}
}
},
"readOnly": true,
"example": {}
},
"max_conns": {
"description": "The max_conns limit for the server.",
"type": "int32",
"example": 0
},
"requests": {
"description": "The total number of client requests forwarded to this server.",
"type": "int32",
"readOnly": true,
"example": 31070465
},
"responses": {
"type": "object",
"members": {
"1xx": {
"description": "The number of responses with \u201c1xx\u201d status codes.",
"type": "int32",
"readOnly": true,
"example": 0
},
"2xx": {
"description": "The number of responses with \u201c2xx\u201d status codes.",
"type": "int32",
"readOnly": true,
"example": 0
},
"3xx": {
"description": "The number of responses with \u201c3xx\u201d status codes.",
"type": "int32",
"readOnly": true,
"example": 0
},
"4xx": {
"description": "The number of responses with \u201c4xx\u201d status codes.",
"type": "int32",
"readOnly": true,
"example": 0
},
"5xx": {
"description": "The number of responses with \u201c5xx\u201d status codes.",
"type": "int32",
"readOnly": true,
"example": 0
},
"codes": {
"description": "The number of responses per each status code.",
"type": "object",
"members": {
"codeNumber": {
"description": "The number of responses with this particular status code.",
"type": "int32",
"readOnly": true,
"example": 0
}
},
"readOnly": true,
"example": {}
},
"total": {
"description": "The total number of responses obtained from this server.",
"type": "int32",
"readOnly": true,
"example": 98765
}
},
"readOnly": true,
"example": 1234567
},
"sent": {
"description": "The total number of bytes sent to this server.",
"type": "int32",
"readOnly": true,
"example": 20183175459
},
"received": {
"description": "The total number of bytes received from this server.",
"type": "int32",
"readOnly": true,
"example": 180157219
},
"fails": {
"description": "The total number of unsuccessful attempts to communicate with the server.",
"type": "int32",
"readOnly": true,
"example": 0
},
"unavail": {
"description": "How many times the server became unavailable for client requests (state \u201cunavail\u201d) due to the number of unsuccessful attempts reaching the max_fails threshold.",
"type": "int32",
"readOnly": true,
"example": 0
},
"health_checks": {
"type": "object",
"members": {
"checks": {
"description": "The total number of health check requests made.",
"type": "int32",
"example": 0
},
"fails": {
"description": "The number of failed health checks.",
"type": "int32",
"example": 0
},
"unhealthy": {
"description": "How many times the server became unhealthy (state \u201cunhealthy\u201d).",
"type": "int32",
"example": 0
},
"last_passed": {
"description": "Boolean indicating if the last health check request was successful and passed tests.",
"type": "boolean",
"example": false
}
},
"readOnly": true,
"example": 0
},
"downtime": {
"description": "Total time the server was in the \u201cunavail\u201d, \u201cchecking\u201d, and \u201cunhealthy\u201d states.",
"type": "int32",
"readOnly": true,
"example": 0
},
"downstart": {
"description": "The time when the server became \u201cunavail\u201d, \u201cchecking\u201d, or \u201cunhealthy\u201d, in the ISO 8601 format with millisecond resolution.",
"type": "string",
"readOnly": true,
"example": "2026-04-21T10:30:00.000Z"
},
"selected": {
"description": "The time when the server was last selected to process a request, in the ISO 8601 format with millisecond resolution.",
"type": "string",
"readOnly": true,
"example": "2026-04-21T10:30:00.000Z"
},
"header_time": {
"description": "The average time to get the response header from the server.",
"type": "int32",
"readOnly": true,
"example": 0
},
"response_time": {
"description": "The average time to get the full response from the server.",
"type": "int32",
"readOnly": true,
"example": 0
}
}
}