Latest update - GitHub 446ce03
This commit is contained in:
@@ -1877,6 +1877,13 @@ ngx_http_proxy_process_status_line(ngx_http_request_t *r)
|
||||
u->headers_in.status_n, &u->headers_in.status_line);
|
||||
|
||||
if (ctx->status.http_version < NGX_HTTP_VERSION_11) {
|
||||
|
||||
if (ctx->status.code == NGX_HTTP_EARLY_HINTS) {
|
||||
ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
|
||||
"upstream sent HTTP/1.0 response with early hints");
|
||||
return NGX_HTTP_UPSTREAM_INVALID_HEADER;
|
||||
}
|
||||
|
||||
u->headers_in.connection_close = 1;
|
||||
}
|
||||
|
||||
@@ -1938,6 +1945,14 @@ ngx_http_proxy_process_header(ngx_http_request_t *r)
|
||||
ngx_strlow(h->lowcase_key, h->key.data, h->key.len);
|
||||
}
|
||||
|
||||
ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
|
||||
"http proxy header: \"%V: %V\"",
|
||||
&h->key, &h->value);
|
||||
|
||||
if (r->upstream->headers_in.status_n == NGX_HTTP_EARLY_HINTS) {
|
||||
continue;
|
||||
}
|
||||
|
||||
hh = ngx_hash_find(&umcf->headers_in_hash, h->hash,
|
||||
h->lowcase_key, h->key.len);
|
||||
|
||||
@@ -1949,10 +1964,6 @@ ngx_http_proxy_process_header(ngx_http_request_t *r)
|
||||
}
|
||||
}
|
||||
|
||||
ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
|
||||
"http proxy header: \"%V: %V\"",
|
||||
&h->key, &h->value);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1963,6 +1974,20 @@ ngx_http_proxy_process_header(ngx_http_request_t *r)
|
||||
ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
|
||||
"http proxy header done");
|
||||
|
||||
ctx = ngx_http_get_module_ctx(r, ngx_http_proxy_module);
|
||||
|
||||
if (r->upstream->headers_in.status_n == NGX_HTTP_EARLY_HINTS) {
|
||||
ctx->status.code = 0;
|
||||
ctx->status.count = 0;
|
||||
ctx->status.start = NULL;
|
||||
ctx->status.end = NULL;
|
||||
|
||||
r->upstream->process_header =
|
||||
ngx_http_proxy_process_status_line;
|
||||
r->state = 0;
|
||||
return NGX_HTTP_UPSTREAM_EARLY_HINTS;
|
||||
}
|
||||
|
||||
/*
|
||||
* if no "Server" and "Date" in header line,
|
||||
* then add the special empty headers
|
||||
@@ -2010,8 +2035,6 @@ ngx_http_proxy_process_header(ngx_http_request_t *r)
|
||||
* connections alive in case of r->header_only or X-Accel-Redirect
|
||||
*/
|
||||
|
||||
ctx = ngx_http_get_module_ctx(r, ngx_http_proxy_module);
|
||||
|
||||
if (u->headers_in.status_n == NGX_HTTP_NO_CONTENT
|
||||
|| u->headers_in.status_n == NGX_HTTP_NOT_MODIFIED
|
||||
|| ctx->head
|
||||
@@ -3422,10 +3445,10 @@ ngx_http_proxy_create_loc_conf(ngx_conf_t *cf)
|
||||
conf->ssl_conf_commands = NGX_CONF_UNSET_PTR;
|
||||
#endif
|
||||
|
||||
/* "proxy_cyclic_temp_file" is disabled */
|
||||
/* the hardcoded values */
|
||||
conf->upstream.cyclic_temp_file = 0;
|
||||
|
||||
conf->upstream.change_buffering = 1;
|
||||
conf->upstream.pass_early_hints = 1;
|
||||
|
||||
conf->headers_source = NGX_CONF_UNSET_PTR;
|
||||
|
||||
@@ -3638,7 +3661,7 @@ ngx_http_proxy_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
||||
if (ngx_conf_merge_path_value(cf, &conf->upstream.temp_path,
|
||||
prev->upstream.temp_path,
|
||||
&ngx_http_proxy_temp_path)
|
||||
!= NGX_OK)
|
||||
!= NGX_CONF_OK)
|
||||
{
|
||||
return NGX_CONF_ERROR;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user