allowing handling 400 errors via proxy_pass

This commit is contained in:
Igor Sysoev 2006-09-25 17:49:49 +00:00
parent 586f7a5f5d
commit 8a3cdc00ff
3 changed files with 11 additions and 6 deletions

View File

@ -514,12 +514,7 @@ ngx_http_handler(ngx_http_request_t *r)
} else {
r->lingering_close = 0;
}
}
r->valid_unparsed_uri = 1;
r->valid_location = 1;
if (!r->internal) {
r->phase_handler = 0;
} else {
@ -527,6 +522,12 @@ ngx_http_handler(ngx_http_request_t *r)
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;
ngx_http_core_run_phases(r);
}

View File

@ -979,7 +979,7 @@ ngx_http_read_request_header(ngx_http_request_t *r)
c->error = rev->error;
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;
}

View File

@ -299,6 +299,9 @@ static ngx_str_t error_pages[] = {
};
static ngx_str_t ngx_http_get_name = { 3, "GET " };
ngx_int_t
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->method = NGX_HTTP_GET;
r->method_name = ngx_http_get_name;
uri = &err_page[i].uri;