mirror of
https://github.com/nginx/nginx.git
synced 2025-06-13 06:12:44 +08:00
allowing handling 400 errors via proxy_pass
This commit is contained in:
parent
586f7a5f5d
commit
8a3cdc00ff
@ -514,12 +514,7 @@ ngx_http_handler(ngx_http_request_t *r)
|
|||||||
} else {
|
} else {
|
||||||
r->lingering_close = 0;
|
r->lingering_close = 0;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
r->valid_unparsed_uri = 1;
|
|
||||||
r->valid_location = 1;
|
|
||||||
|
|
||||||
if (!r->internal) {
|
|
||||||
r->phase_handler = 0;
|
r->phase_handler = 0;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -527,6 +522,12 @@ ngx_http_handler(ngx_http_request_t *r)
|
|||||||
r->phase_handler = cmcf->phase_engine.server_rewrite_index;
|
r->phase_handler = cmcf->phase_engine.server_rewrite_index;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (r->unparsed_uri.len) {
|
||||||
|
r->valid_unparsed_uri = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
r->valid_location = 1;
|
||||||
|
|
||||||
r->write_event_handler = ngx_http_core_run_phases;
|
r->write_event_handler = ngx_http_core_run_phases;
|
||||||
ngx_http_core_run_phases(r);
|
ngx_http_core_run_phases(r);
|
||||||
}
|
}
|
||||||
|
@ -979,7 +979,7 @@ ngx_http_read_request_header(ngx_http_request_t *r)
|
|||||||
c->error = rev->error;
|
c->error = rev->error;
|
||||||
c->log->action = "sending response to client";
|
c->log->action = "sending response to client";
|
||||||
|
|
||||||
ngx_http_finalize_request(r, NGX_HTTP_BAD_REQUEST);
|
ngx_http_finalize_request(r, NGX_HTTP_CLIENT_CLOSED_REQUEST);
|
||||||
return NGX_ERROR;
|
return NGX_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -299,6 +299,9 @@ static ngx_str_t error_pages[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static ngx_str_t ngx_http_get_name = { 3, "GET " };
|
||||||
|
|
||||||
|
|
||||||
ngx_int_t
|
ngx_int_t
|
||||||
ngx_http_special_response_handler(ngx_http_request_t *r, ngx_int_t error)
|
ngx_http_special_response_handler(ngx_http_request_t *r, ngx_int_t error)
|
||||||
{
|
{
|
||||||
@ -364,6 +367,7 @@ ngx_http_special_response_handler(ngx_http_request_t *r, ngx_int_t error)
|
|||||||
r->err_status = err_page[i].overwrite;
|
r->err_status = err_page[i].overwrite;
|
||||||
|
|
||||||
r->method = NGX_HTTP_GET;
|
r->method = NGX_HTTP_GET;
|
||||||
|
r->method_name = ngx_http_get_name;
|
||||||
|
|
||||||
uri = &err_page[i].uri;
|
uri = &err_page[i].uri;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user