接收上游响应头部
- 在创建和上游连接的时候,将对应的 read_event_hander 设置为:
ngx_http_upstream_process_header
static void
ngx_http_upstream_connect(ngx_http_request_t *r, ngx_http_upstream_t *u)
{
// skip others...
u->read_event_handler = ngx_http_upstream_process_header;
}
static void
ngx_http_upstream_process_header(ngx_http_request_t *r, ngx_http_upstream_t *u)
{
ssize_t n;
ngx_int_t rc;
ngx_connection_t *c;
c = u->peer.connection;
ngx_log_debug0(NGX_LOG_DEBUG_HTTP, c->log, 0,
"http upstream process header");
c->log->action = "reading response header from upstream";
// 先检查上游连接对应的读事件是否超时,如果超时,则调用 ngx_http_upstream_next 关闭上游连接;
if (c->read->timedout) {
ngx_http_upstrea