Mercurial > hg > nginx-ranges
view src/http/ngx_http_upstream.h @ 34:aab2ea7c0458 NGINX_0_1_17
nginx 0.1.17
*) Change: the ngx_http_rewrite_module was rewritten from the scratch.
Now it is possible to redirect, to return the error codes, to check
the variables and referrers. The directives can be used inside
locations. The redirect directive was canceled.
*) Feature: the ngx_http_geo_module.
*) Feature: the proxy_set_x_var and fastcgi_set_var directives.
*) Bugfix: the location configuration with "=" modifier may be used in
another location.
*) Bugfix: the correct content type was set only for requests that use
small caps letters in extension.
*) Bugfix: if the proxy_pass or fastcgi_pass directives were set in the
location, and access was denied, and the error was redirected to a
static page, then the segmentation fault occurred.
*) Bugfix: if in a proxied "Location" header was a relative URL, then a
host name and a slash were added to them; bug appeared in 0.1.14.
*) Bugfix: the system error message was not logged on Linux.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Thu, 03 Feb 2005 00:00:00 +0300 |
parents | da8c190bdaba |
children | a39d1b793287 |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev */ #ifndef _NGX_HTTP_UPSTREAM_H_INCLUDED_ #define _NGX_HTTP_UPSTREAM_H_INCLUDED_ #include <ngx_config.h> #include <ngx_core.h> #include <ngx_event.h> #include <ngx_event_connect.h> #include <ngx_event_pipe.h> #include <ngx_http.h> #define NGX_HTTP_UPSTREAM_FT_ERROR 0x02 #define NGX_HTTP_UPSTREAM_FT_TIMEOUT 0x04 #define NGX_HTTP_UPSTREAM_FT_INVALID_HEADER 0x08 #define NGX_HTTP_UPSTREAM_FT_HTTP_500 0x10 #define NGX_HTTP_UPSTREAM_FT_HTTP_404 0x20 #define NGX_HTTP_UPSTREAM_FT_BUSY_LOCK 0x40 #define NGX_HTTP_UPSTREAM_FT_MAX_WAITING 0x80 #define NGX_HTTP_UPSTREAM_INVALID_HEADER 40 typedef struct { time_t bl_time; ngx_uint_t bl_state; ngx_uint_t status; time_t time; ngx_str_t *peer; } ngx_http_upstream_state_t; typedef struct { ngx_msec_t connect_timeout; ngx_msec_t send_timeout; ngx_msec_t read_timeout; size_t send_lowat; size_t header_buffer_size; size_t busy_buffers_size; size_t max_temp_file_size; size_t temp_file_write_size; ngx_uint_t next_upstream; ngx_bufs_t bufs; ngx_flag_t x_powered_by; ngx_flag_t cyclic_temp_file; ngx_path_t *temp_path; } ngx_http_upstream_conf_t; typedef struct ngx_http_upstream_s ngx_http_upstream_t; struct ngx_http_upstream_s { ngx_http_request_t *request; ngx_peer_connection_t peer; ngx_event_pipe_t pipe; ngx_output_chain_ctx_t output; ngx_chain_writer_ctx_t writer; ngx_http_upstream_conf_t *conf; ngx_buf_t header_in; ngx_int_t (*create_request)(ngx_http_request_t *r); ngx_int_t (*reinit_request)(ngx_http_request_t *r); ngx_int_t (*process_header)(ngx_http_request_t *r); ngx_int_t (*send_header)(ngx_http_request_t *r); void (*abort_request)(ngx_http_request_t *r); void (*finalize_request)(ngx_http_request_t *r, ngx_int_t rc); ngx_uint_t method; ngx_str_t schema; ngx_str_t uri; ngx_str_t *location; ngx_http_log_ctx_t *log_ctx; ngx_log_handler_pt log_handler; ngx_http_log_ctx_t *saved_log_ctx; ngx_log_handler_pt saved_log_handler; /* used to parse an upstream HTTP header */ ngx_uint_t status; u_char *status_start; u_char *status_end; ngx_uint_t status_count; ngx_uint_t parse_state; ngx_http_upstream_state_t *state; ngx_array_t states; /* of ngx_http_upstream_state_t */ unsigned cachable:1; unsigned request_sent:1; unsigned header_sent:1; }; void ngx_http_upstream_init(ngx_http_request_t *r); u_char *ngx_http_upstream_log_error(ngx_log_t *log, u_char *buf, size_t len); extern char *ngx_http_upstream_header_errors[]; #endif /* _NGX_HTTP_UPSTREAM_H_INCLUDED_ */