Mercurial > hg > nginx-quic
annotate src/http/ngx_http_upstream.h @ 6693:3908156a51fa
Stream: phases.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Thu, 15 Sep 2016 14:55:54 +0300 |
parents | c131f20c9562 |
children | edcd9303a4d3 |
rev | line source |
---|---|
479 | 1 |
2 /* | |
3 * Copyright (C) Igor Sysoev | |
4412 | 4 * Copyright (C) Nginx, Inc. |
479 | 5 */ |
6 | |
7 | |
8 #ifndef _NGX_HTTP_UPSTREAM_H_INCLUDED_ | |
9 #define _NGX_HTTP_UPSTREAM_H_INCLUDED_ | |
10 | |
11 | |
12 #include <ngx_config.h> | |
13 #include <ngx_core.h> | |
14 #include <ngx_event.h> | |
15 #include <ngx_event_connect.h> | |
16 #include <ngx_event_pipe.h> | |
17 #include <ngx_http.h> | |
18 | |
19 | |
665 | 20 #define NGX_HTTP_UPSTREAM_FT_ERROR 0x00000002 |
21 #define NGX_HTTP_UPSTREAM_FT_TIMEOUT 0x00000004 | |
22 #define NGX_HTTP_UPSTREAM_FT_INVALID_HEADER 0x00000008 | |
23 #define NGX_HTTP_UPSTREAM_FT_HTTP_500 0x00000010 | |
2268
33556140681a
*) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents:
2184
diff
changeset
|
24 #define NGX_HTTP_UPSTREAM_FT_HTTP_502 0x00000020 |
33556140681a
*) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents:
2184
diff
changeset
|
25 #define NGX_HTTP_UPSTREAM_FT_HTTP_503 0x00000040 |
33556140681a
*) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents:
2184
diff
changeset
|
26 #define NGX_HTTP_UPSTREAM_FT_HTTP_504 0x00000080 |
5231
05c53652e7b4
Upstream: http_403 support in proxy_next_upstream (and friends).
Maxim Dounin <mdounin@mdounin.ru>
parents:
5072
diff
changeset
|
27 #define NGX_HTTP_UPSTREAM_FT_HTTP_403 0x00000100 |
05c53652e7b4
Upstream: http_403 support in proxy_next_upstream (and friends).
Maxim Dounin <mdounin@mdounin.ru>
parents:
5072
diff
changeset
|
28 #define NGX_HTTP_UPSTREAM_FT_HTTP_404 0x00000200 |
05c53652e7b4
Upstream: http_403 support in proxy_next_upstream (and friends).
Maxim Dounin <mdounin@mdounin.ru>
parents:
5072
diff
changeset
|
29 #define NGX_HTTP_UPSTREAM_FT_UPDATING 0x00000400 |
05c53652e7b4
Upstream: http_403 support in proxy_next_upstream (and friends).
Maxim Dounin <mdounin@mdounin.ru>
parents:
5072
diff
changeset
|
30 #define NGX_HTTP_UPSTREAM_FT_BUSY_LOCK 0x00000800 |
05c53652e7b4
Upstream: http_403 support in proxy_next_upstream (and friends).
Maxim Dounin <mdounin@mdounin.ru>
parents:
5072
diff
changeset
|
31 #define NGX_HTTP_UPSTREAM_FT_MAX_WAITING 0x00001000 |
6467
91c8d990fb45
Upstream: proxy_next_upstream non_idempotent.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6458
diff
changeset
|
32 #define NGX_HTTP_UPSTREAM_FT_NON_IDEMPOTENT 0x00002000 |
1378 | 33 #define NGX_HTTP_UPSTREAM_FT_NOLIVE 0x40000000 |
665 | 34 #define NGX_HTTP_UPSTREAM_FT_OFF 0x80000000 |
479 | 35 |
2268
33556140681a
*) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents:
2184
diff
changeset
|
36 #define NGX_HTTP_UPSTREAM_FT_STATUS (NGX_HTTP_UPSTREAM_FT_HTTP_500 \ |
33556140681a
*) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents:
2184
diff
changeset
|
37 |NGX_HTTP_UPSTREAM_FT_HTTP_502 \ |
33556140681a
*) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents:
2184
diff
changeset
|
38 |NGX_HTTP_UPSTREAM_FT_HTTP_503 \ |
33556140681a
*) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents:
2184
diff
changeset
|
39 |NGX_HTTP_UPSTREAM_FT_HTTP_504 \ |
5231
05c53652e7b4
Upstream: http_403 support in proxy_next_upstream (and friends).
Maxim Dounin <mdounin@mdounin.ru>
parents:
5072
diff
changeset
|
40 |NGX_HTTP_UPSTREAM_FT_HTTP_403 \ |
2268
33556140681a
*) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents:
2184
diff
changeset
|
41 |NGX_HTTP_UPSTREAM_FT_HTTP_404) |
479 | 42 |
43 #define NGX_HTTP_UPSTREAM_INVALID_HEADER 40 | |
44 | |
45 | |
2786
4e002555652d
proxy_ignore_headers and fastcgi_ignore_headers
Igor Sysoev <igor@sysoev.ru>
parents:
2754
diff
changeset
|
46 #define NGX_HTTP_UPSTREAM_IGN_XA_REDIRECT 0x00000002 |
4e002555652d
proxy_ignore_headers and fastcgi_ignore_headers
Igor Sysoev <igor@sysoev.ru>
parents:
2754
diff
changeset
|
47 #define NGX_HTTP_UPSTREAM_IGN_XA_EXPIRES 0x00000004 |
4e002555652d
proxy_ignore_headers and fastcgi_ignore_headers
Igor Sysoev <igor@sysoev.ru>
parents:
2754
diff
changeset
|
48 #define NGX_HTTP_UPSTREAM_IGN_EXPIRES 0x00000008 |
4e002555652d
proxy_ignore_headers and fastcgi_ignore_headers
Igor Sysoev <igor@sysoev.ru>
parents:
2754
diff
changeset
|
49 #define NGX_HTTP_UPSTREAM_IGN_CACHE_CONTROL 0x00000010 |
3669
1f5841b1fcd7
treat Set-Cookie as a header that forbids caching
Igor Sysoev <igor@sysoev.ru>
parents:
3667
diff
changeset
|
50 #define NGX_HTTP_UPSTREAM_IGN_SET_COOKIE 0x00000020 |
4197
cf6a3467b5db
Additional headers for proxy/fastcgi/uwsgi/scgi_ignore_headers.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4124
diff
changeset
|
51 #define NGX_HTTP_UPSTREAM_IGN_XA_LIMIT_RATE 0x00000040 |
cf6a3467b5db
Additional headers for proxy/fastcgi/uwsgi/scgi_ignore_headers.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4124
diff
changeset
|
52 #define NGX_HTTP_UPSTREAM_IGN_XA_BUFFERING 0x00000080 |
cf6a3467b5db
Additional headers for proxy/fastcgi/uwsgi/scgi_ignore_headers.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4124
diff
changeset
|
53 #define NGX_HTTP_UPSTREAM_IGN_XA_CHARSET 0x00000100 |
5877
60fde1bc7236
Cache: disable caching of responses with Vary (ticket #118).
Maxim Dounin <mdounin@mdounin.ru>
parents:
5874
diff
changeset
|
54 #define NGX_HTTP_UPSTREAM_IGN_VARY 0x00000200 |
2786
4e002555652d
proxy_ignore_headers and fastcgi_ignore_headers
Igor Sysoev <igor@sysoev.ru>
parents:
2754
diff
changeset
|
55 |
4e002555652d
proxy_ignore_headers and fastcgi_ignore_headers
Igor Sysoev <igor@sysoev.ru>
parents:
2754
diff
changeset
|
56 |
479 | 57 typedef struct { |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
58 ngx_msec_t bl_time; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
59 ngx_uint_t bl_state; |
479 | 60 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
61 ngx_uint_t status; |
6146
59fc60585f1e
Upstream: times to obtain header/response are stored as ngx_msec_t.
Ruslan Ermilov <ru@nginx.com>
parents:
6103
diff
changeset
|
62 ngx_msec_t response_time; |
6147
74b6ef56ea56
Upstream: $upstream_connect_time.
Ruslan Ermilov <ru@nginx.com>
parents:
6146
diff
changeset
|
63 ngx_msec_t connect_time; |
6146
59fc60585f1e
Upstream: times to obtain header/response are stored as ngx_msec_t.
Ruslan Ermilov <ru@nginx.com>
parents:
6103
diff
changeset
|
64 ngx_msec_t header_time; |
3795 | 65 off_t response_length; |
6654
c131f20c9562
Upstream: the $upstream_bytes_received variable.
Vladimir Homutov <vl@nginx.com>
parents:
6530
diff
changeset
|
66 off_t bytes_received; |
563 | 67 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
68 ngx_str_t *peer; |
479 | 69 } ngx_http_upstream_state_t; |
70 | |
71 | |
72 typedef struct { | |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
73 ngx_hash_t headers_in_hash; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
74 ngx_array_t upstreams; |
884 | 75 /* ngx_http_upstream_srv_conf_t */ |
509 | 76 } ngx_http_upstream_main_conf_t; |
77 | |
884 | 78 typedef struct ngx_http_upstream_srv_conf_s ngx_http_upstream_srv_conf_t; |
79 | |
80 typedef ngx_int_t (*ngx_http_upstream_init_pt)(ngx_conf_t *cf, | |
81 ngx_http_upstream_srv_conf_t *us); | |
82 typedef ngx_int_t (*ngx_http_upstream_init_peer_pt)(ngx_http_request_t *r, | |
83 ngx_http_upstream_srv_conf_t *us); | |
84 | |
85 | |
86 typedef struct { | |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
87 ngx_http_upstream_init_pt init_upstream; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
88 ngx_http_upstream_init_peer_pt init; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
89 void *data; |
884 | 90 } ngx_http_upstream_peer_t; |
91 | |
509 | 92 |
93 typedef struct { | |
5717
efc84a5723b3
Upstream: generic hash module.
Roman Arutyunyan <arut@nginx.com>
parents:
5677
diff
changeset
|
94 ngx_str_t name; |
3269
f0d596e84634
rename ngx_peer_addr_t to ngx_addr_t
Igor Sysoev <igor@sysoev.ru>
parents:
3264
diff
changeset
|
95 ngx_addr_t *addrs; |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
96 ngx_uint_t naddrs; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
97 ngx_uint_t weight; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
98 ngx_uint_t max_fails; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
99 time_t fail_timeout; |
884 | 100 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
101 unsigned down:1; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
102 unsigned backup:1; |
884 | 103 } ngx_http_upstream_server_t; |
104 | |
651 | 105 |
884 | 106 #define NGX_HTTP_UPSTREAM_CREATE 0x0001 |
107 #define NGX_HTTP_UPSTREAM_WEIGHT 0x0002 | |
108 #define NGX_HTTP_UPSTREAM_MAX_FAILS 0x0004 | |
109 #define NGX_HTTP_UPSTREAM_FAIL_TIMEOUT 0x0008 | |
110 #define NGX_HTTP_UPSTREAM_DOWN 0x0010 | |
111 #define NGX_HTTP_UPSTREAM_BACKUP 0x0020 | |
112 | |
651 | 113 |
884 | 114 struct ngx_http_upstream_srv_conf_s { |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
115 ngx_http_upstream_peer_t peer; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
116 void **srv_conf; |
884 | 117 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
118 ngx_array_t *servers; /* ngx_http_upstream_server_t */ |
884 | 119 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
120 ngx_uint_t flags; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
121 ngx_str_t host; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
122 u_char *file_name; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
123 ngx_uint_t line; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
124 in_port_t port; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
125 in_port_t default_port; |
5005
c9059bd5445b
Fixed "proxy_pass" with IP address and no port (ticket #276).
Ruslan Ermilov <ru@nginx.com>
parents:
4464
diff
changeset
|
126 ngx_uint_t no_port; /* unsigned no_port:1 */ |
6103
79ddb0bdb273
Upstream: the "zone" directive.
Ruslan Ermilov <ru@nginx.com>
parents:
6050
diff
changeset
|
127 |
79ddb0bdb273
Upstream: the "zone" directive.
Ruslan Ermilov <ru@nginx.com>
parents:
6050
diff
changeset
|
128 #if (NGX_HTTP_UPSTREAM_ZONE) |
79ddb0bdb273
Upstream: the "zone" directive.
Ruslan Ermilov <ru@nginx.com>
parents:
6050
diff
changeset
|
129 ngx_shm_zone_t *shm_zone; |
79ddb0bdb273
Upstream: the "zone" directive.
Ruslan Ermilov <ru@nginx.com>
parents:
6050
diff
changeset
|
130 #endif |
884 | 131 }; |
651 | 132 |
133 | |
134 typedef struct { | |
5008
fd84344f1df7
Fixed and improved the "*_bind" directives of proxying modules.
Ruslan Ermilov <ru@nginx.com>
parents:
5005
diff
changeset
|
135 ngx_addr_t *addr; |
fd84344f1df7
Fixed and improved the "*_bind" directives of proxying modules.
Ruslan Ermilov <ru@nginx.com>
parents:
5005
diff
changeset
|
136 ngx_http_complex_value_t *value; |
6530
1d0e03db9f8e
Upstream: the "transparent" parameter of proxy_bind and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
6467
diff
changeset
|
137 #if (NGX_HAVE_TRANSPARENT_PROXY) |
1d0e03db9f8e
Upstream: the "transparent" parameter of proxy_bind and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
6467
diff
changeset
|
138 ngx_uint_t transparent; /* unsigned transparent:1; */ |
1d0e03db9f8e
Upstream: the "transparent" parameter of proxy_bind and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
6467
diff
changeset
|
139 #endif |
5008
fd84344f1df7
Fixed and improved the "*_bind" directives of proxying modules.
Ruslan Ermilov <ru@nginx.com>
parents:
5005
diff
changeset
|
140 } ngx_http_upstream_local_t; |
fd84344f1df7
Fixed and improved the "*_bind" directives of proxying modules.
Ruslan Ermilov <ru@nginx.com>
parents:
5005
diff
changeset
|
141 |
fd84344f1df7
Fixed and improved the "*_bind" directives of proxying modules.
Ruslan Ermilov <ru@nginx.com>
parents:
5005
diff
changeset
|
142 |
fd84344f1df7
Fixed and improved the "*_bind" directives of proxying modules.
Ruslan Ermilov <ru@nginx.com>
parents:
5005
diff
changeset
|
143 typedef struct { |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
144 ngx_http_upstream_srv_conf_t *upstream; |
884 | 145 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
146 ngx_msec_t connect_timeout; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
147 ngx_msec_t send_timeout; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
148 ngx_msec_t read_timeout; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
149 ngx_msec_t timeout; |
5832
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5732
diff
changeset
|
150 ngx_msec_t next_upstream_timeout; |
479 | 151 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
152 size_t send_lowat; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
153 size_t buffer_size; |
5883
973ee2276300
Upstream: proxy_limit_rate and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5877
diff
changeset
|
154 size_t limit_rate; |
529 | 155 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
156 size_t busy_buffers_size; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
157 size_t max_temp_file_size; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
158 size_t temp_file_write_size; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
159 |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
160 size_t busy_buffers_size_conf; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
161 size_t max_temp_file_size_conf; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
162 size_t temp_file_write_size_conf; |
509 | 163 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
164 ngx_bufs_t bufs; |
529 | 165 |
2786
4e002555652d
proxy_ignore_headers and fastcgi_ignore_headers
Igor Sysoev <igor@sysoev.ru>
parents:
2754
diff
changeset
|
166 ngx_uint_t ignore_headers; |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
167 ngx_uint_t next_upstream; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
168 ngx_uint_t store_access; |
5832
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5732
diff
changeset
|
169 ngx_uint_t next_upstream_tries; |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
170 ngx_flag_t buffering; |
6050
a08fad30aeac
Request body: unbuffered reading.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5964
diff
changeset
|
171 ngx_flag_t request_buffering; |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
172 ngx_flag_t pass_request_headers; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
173 ngx_flag_t pass_request_body; |
479 | 174 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
175 ngx_flag_t ignore_client_abort; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
176 ngx_flag_t intercept_errors; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
177 ngx_flag_t cyclic_temp_file; |
5874
2aff40b3dea2
Upstream: proxy_force_ranges and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5832
diff
changeset
|
178 ngx_flag_t force_ranges; |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
179 |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
180 ngx_path_t *temp_path; |
479 | 181 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
182 ngx_hash_t hide_headers_hash; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
183 ngx_array_t *hide_headers; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
184 ngx_array_t *pass_headers; |
509 | 185 |
5008
fd84344f1df7
Fixed and improved the "*_bind" directives of proxying modules.
Ruslan Ermilov <ru@nginx.com>
parents:
5005
diff
changeset
|
186 ngx_http_upstream_local_t *local; |
3271
fcd98af88df3
proxy_bind, fastcgi_bind, and memcached_bind
Igor Sysoev <igor@sysoev.ru>
parents:
3269
diff
changeset
|
187 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
188 #if (NGX_HTTP_CACHE) |
5949
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5905
diff
changeset
|
189 ngx_shm_zone_t *cache_zone; |
5951
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
190 ngx_http_complex_value_t *cache_value; |
479 | 191 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
192 ngx_uint_t cache_min_uses; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
193 ngx_uint_t cache_use_stale; |
2875
6e1941b321b7
proxy_cache_methods and fastcgi_cache_methods
Igor Sysoev <igor@sysoev.ru>
parents:
2786
diff
changeset
|
194 ngx_uint_t cache_methods; |
479 | 195 |
4385
70ba81827472
Cache locks initial implementation.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4328
diff
changeset
|
196 ngx_flag_t cache_lock; |
70ba81827472
Cache locks initial implementation.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4328
diff
changeset
|
197 ngx_msec_t cache_lock_timeout; |
5905
2f7e557eab5b
Cache: proxy_cache_lock_age and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5883
diff
changeset
|
198 ngx_msec_t cache_lock_age; |
4385
70ba81827472
Cache locks initial implementation.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4328
diff
changeset
|
199 |
5441
43ccaf8e8728
Upstream: cache revalidation with conditional requests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5231
diff
changeset
|
200 ngx_flag_t cache_revalidate; |
6290
4d5ac1a31d44
Upstream: proxy_cache_convert_head directive.
Roman Arutyunyan <arut@nginx.com>
parents:
6147
diff
changeset
|
201 ngx_flag_t cache_convert_head; |
5441
43ccaf8e8728
Upstream: cache revalidation with conditional requests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5231
diff
changeset
|
202 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
203 ngx_array_t *cache_valid; |
3699
b0a0686a85bb
proxy_cache_pass, fastcgi_cache_bypass, uwsgi_cache_bypass, scgi_cache_bypass
Igor Sysoev <igor@sysoev.ru>
parents:
3669
diff
changeset
|
204 ngx_array_t *cache_bypass; |
b0a0686a85bb
proxy_cache_pass, fastcgi_cache_bypass, uwsgi_cache_bypass, scgi_cache_bypass
Igor Sysoev <igor@sysoev.ru>
parents:
3669
diff
changeset
|
205 ngx_array_t *no_cache; |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
206 #endif |
509 | 207 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
208 ngx_array_t *store_lengths; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
209 ngx_array_t *store_values; |
1295
5383f5232364
proxy_store and fastcgi_store were changed,
Igor Sysoev <igor@sysoev.ru>
parents:
1291
diff
changeset
|
210 |
5949
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5905
diff
changeset
|
211 #if (NGX_HTTP_CACHE) |
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5905
diff
changeset
|
212 signed cache:2; |
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5905
diff
changeset
|
213 #endif |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
214 signed store:2; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
215 unsigned intercept_404:1; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
216 unsigned change_buffering:1; |
581 | 217 |
577 | 218 #if (NGX_HTTP_SSL) |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
219 ngx_ssl_t *ssl; |
2754 | 220 ngx_flag_t ssl_session_reuse; |
5660
7022564a9e0e
Upstream: proxy_ssl_name and proxy_ssl_server_name directives.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5475
diff
changeset
|
221 |
7022564a9e0e
Upstream: proxy_ssl_name and proxy_ssl_server_name directives.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5475
diff
changeset
|
222 ngx_http_complex_value_t *ssl_name; |
7022564a9e0e
Upstream: proxy_ssl_name and proxy_ssl_server_name directives.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5475
diff
changeset
|
223 ngx_flag_t ssl_server_name; |
5661
060c2e692b96
Upstream: proxy_ssl_verify and friends.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5660
diff
changeset
|
224 ngx_flag_t ssl_verify; |
577 | 225 #endif |
226 | |
3976
215fe9223419
update r3945 with more descriptive error message
Igor Sysoev <igor@sysoev.ru>
parents:
3795
diff
changeset
|
227 ngx_str_t module; |
479 | 228 } ngx_http_upstream_conf_t; |
229 | |
230 | |
509 | 231 typedef struct { |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
232 ngx_str_t name; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
233 ngx_http_header_handler_pt handler; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
234 ngx_uint_t offset; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
235 ngx_http_header_handler_pt copy_handler; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
236 ngx_uint_t conf; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
237 ngx_uint_t redirect; /* unsigned redirect:1; */ |
509 | 238 } ngx_http_upstream_header_t; |
239 | |
240 | |
241 typedef struct { | |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
242 ngx_list_t headers; |
509 | 243 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
244 ngx_uint_t status_n; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
245 ngx_str_t status_line; |
529 | 246 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
247 ngx_table_elt_t *status; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
248 ngx_table_elt_t *date; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
249 ngx_table_elt_t *server; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
250 ngx_table_elt_t *connection; |
509 | 251 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
252 ngx_table_elt_t *expires; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
253 ngx_table_elt_t *etag; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
254 ngx_table_elt_t *x_accel_expires; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
255 ngx_table_elt_t *x_accel_redirect; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
256 ngx_table_elt_t *x_accel_limit_rate; |
509 | 257 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
258 ngx_table_elt_t *content_type; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
259 ngx_table_elt_t *content_length; |
509 | 260 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
261 ngx_table_elt_t *last_modified; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
262 ngx_table_elt_t *location; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
263 ngx_table_elt_t *accept_ranges; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
264 ngx_table_elt_t *www_authenticate; |
4123
0ee350b5177c
Upstream: Transfer-Encoding header processing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4120
diff
changeset
|
265 ngx_table_elt_t *transfer_encoding; |
5877
60fde1bc7236
Cache: disable caching of responses with Vary (ticket #118).
Maxim Dounin <mdounin@mdounin.ru>
parents:
5874
diff
changeset
|
266 ngx_table_elt_t *vary; |
509 | 267 |
268 #if (NGX_HTTP_GZIP) | |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
269 ngx_table_elt_t *content_encoding; |
509 | 270 #endif |
271 | |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
272 ngx_array_t cache_control; |
5677
3a48775f1535
Upstream: added the "$upstream_cookie_<name>" variables.
Vladimir Homutov <vl@nginx.com>
parents:
5661
diff
changeset
|
273 ngx_array_t cookies; |
4123
0ee350b5177c
Upstream: Transfer-Encoding header processing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4120
diff
changeset
|
274 |
5732
d0ce06cb9be1
Upstream: fixed cache revalidation with SSI.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5717
diff
changeset
|
275 off_t content_length_n; |
d0ce06cb9be1
Upstream: fixed cache revalidation with SSI.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5717
diff
changeset
|
276 time_t last_modified_time; |
d0ce06cb9be1
Upstream: fixed cache revalidation with SSI.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5717
diff
changeset
|
277 |
4124
0c30976f5bfa
Upstream: Connection header processing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4123
diff
changeset
|
278 unsigned connection_close:1; |
4123
0ee350b5177c
Upstream: Transfer-Encoding header processing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4120
diff
changeset
|
279 unsigned chunked:1; |
509 | 280 } ngx_http_upstream_headers_in_t; |
281 | |
479 | 282 |
1658 | 283 typedef struct { |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
284 ngx_str_t host; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
285 in_port_t port; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
286 ngx_uint_t no_port; /* unsigned no_port:1 */ |
2422
7af1e5fe102c
variable support for unix sockets in fastcgi_pass and proxy_pass
Igor Sysoev <igor@sysoev.ru>
parents:
2402
diff
changeset
|
287 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
288 ngx_uint_t naddrs; |
6458
384154fc634f
Resolver: added support for SRV records.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
6332
diff
changeset
|
289 ngx_resolver_addr_t *addrs; |
2422
7af1e5fe102c
variable support for unix sockets in fastcgi_pass and proxy_pass
Igor Sysoev <igor@sysoev.ru>
parents:
2402
diff
changeset
|
290 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
291 struct sockaddr *sockaddr; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
292 socklen_t socklen; |
2422
7af1e5fe102c
variable support for unix sockets in fastcgi_pass and proxy_pass
Igor Sysoev <igor@sysoev.ru>
parents:
2402
diff
changeset
|
293 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
294 ngx_resolver_ctx_t *ctx; |
1658 | 295 } ngx_http_upstream_resolved_t; |
296 | |
297 | |
2386
4ccaa42de633
use already available r and u instead of ev
Igor Sysoev <igor@sysoev.ru>
parents:
2377
diff
changeset
|
298 typedef void (*ngx_http_upstream_handler_pt)(ngx_http_request_t *r, |
4ccaa42de633
use already available r and u instead of ev
Igor Sysoev <igor@sysoev.ru>
parents:
2377
diff
changeset
|
299 ngx_http_upstream_t *u); |
4ccaa42de633
use already available r and u instead of ev
Igor Sysoev <igor@sysoev.ru>
parents:
2377
diff
changeset
|
300 |
4ccaa42de633
use already available r and u instead of ev
Igor Sysoev <igor@sysoev.ru>
parents:
2377
diff
changeset
|
301 |
479 | 302 struct ngx_http_upstream_s { |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
303 ngx_http_upstream_handler_pt read_event_handler; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
304 ngx_http_upstream_handler_pt write_event_handler; |
2377
87b8c44906b5
*) refactor subrequest handling, now they run as separate posted requests
Igor Sysoev <igor@sysoev.ru>
parents:
2285
diff
changeset
|
305 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
306 ngx_peer_connection_t peer; |
479 | 307 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
308 ngx_event_pipe_t *pipe; |
479 | 309 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
310 ngx_chain_t *request_bufs; |
479 | 311 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
312 ngx_output_chain_ctx_t output; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
313 ngx_chain_writer_ctx_t writer; |
479 | 314 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
315 ngx_http_upstream_conf_t *conf; |
5951
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
316 #if (NGX_HTTP_CACHE) |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
317 ngx_array_t *caches; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
318 #endif |
479 | 319 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
320 ngx_http_upstream_headers_in_t headers_in; |
509 | 321 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
322 ngx_http_upstream_resolved_t *resolved; |
1658 | 323 |
5072
7fa7e60a7f66
Proxy: support for connection upgrade (101 Switching Protocols).
Maxim Dounin <mdounin@mdounin.ru>
parents:
5008
diff
changeset
|
324 ngx_buf_t from_client; |
7fa7e60a7f66
Proxy: support for connection upgrade (101 Switching Protocols).
Maxim Dounin <mdounin@mdounin.ru>
parents:
5008
diff
changeset
|
325 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
326 ngx_buf_t buffer; |
4118
dbddec65fdab
Upstream: r->upstream->length type change to off_t.
Maxim Dounin <mdounin@mdounin.ru>
parents:
3976
diff
changeset
|
327 off_t length; |
581 | 328 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
329 ngx_chain_t *out_bufs; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
330 ngx_chain_t *busy_bufs; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
331 ngx_chain_t *free_bufs; |
581 | 332 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
333 ngx_int_t (*input_filter_init)(void *data); |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
334 ngx_int_t (*input_filter)(void *data, ssize_t bytes); |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
335 void *input_filter_ctx; |
479 | 336 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
337 #if (NGX_HTTP_CACHE) |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
338 ngx_int_t (*create_key)(ngx_http_request_t *r); |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
339 #endif |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
340 ngx_int_t (*create_request)(ngx_http_request_t *r); |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
341 ngx_int_t (*reinit_request)(ngx_http_request_t *r); |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
342 ngx_int_t (*process_header)(ngx_http_request_t *r); |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
343 void (*abort_request)(ngx_http_request_t *r); |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
344 void (*finalize_request)(ngx_http_request_t *r, |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
345 ngx_int_t rc); |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
346 ngx_int_t (*rewrite_redirect)(ngx_http_request_t *r, |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
347 ngx_table_elt_t *h, size_t prefix); |
4464
7bf3b68239a3
Upstream: added callback hook for the "Set-Cookie" header.
Valentin Bartenev <vbart@nginx.com>
parents:
4412
diff
changeset
|
348 ngx_int_t (*rewrite_cookie)(ngx_http_request_t *r, |
7bf3b68239a3
Upstream: added callback hook for the "Set-Cookie" header.
Valentin Bartenev <vbart@nginx.com>
parents:
4412
diff
changeset
|
349 ngx_table_elt_t *h); |
479 | 350 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
351 ngx_msec_t timeout; |
527 | 352 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
353 ngx_http_upstream_state_t *state; |
479 | 354 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
355 ngx_str_t method; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
356 ngx_str_t schema; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
357 ngx_str_t uri; |
555 | 358 |
5660
7022564a9e0e
Upstream: proxy_ssl_name and proxy_ssl_server_name directives.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5475
diff
changeset
|
359 #if (NGX_HTTP_SSL) |
7022564a9e0e
Upstream: proxy_ssl_name and proxy_ssl_server_name directives.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5475
diff
changeset
|
360 ngx_str_t ssl_name; |
7022564a9e0e
Upstream: proxy_ssl_name and proxy_ssl_server_name directives.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5475
diff
changeset
|
361 #endif |
7022564a9e0e
Upstream: proxy_ssl_name and proxy_ssl_server_name directives.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5475
diff
changeset
|
362 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
363 ngx_http_cleanup_pt *cleanup; |
569 | 364 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
365 unsigned store:1; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
366 unsigned cacheable:1; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
367 unsigned accel:1; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
368 unsigned ssl:1; |
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
369 #if (NGX_HTTP_CACHE) |
2952 | 370 unsigned cache_status:3; |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
371 #endif |
479 | 372 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
373 unsigned buffering:1; |
4120
42135dd1f0ea
Upstream: keepalive flag.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4118
diff
changeset
|
374 unsigned keepalive:1; |
5072
7fa7e60a7f66
Proxy: support for connection upgrade (101 Switching Protocols).
Maxim Dounin <mdounin@mdounin.ru>
parents:
5008
diff
changeset
|
375 unsigned upgrade:1; |
649 | 376 |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
377 unsigned request_sent:1; |
6332
78b4e10b4367
Upstream: don't keep connections on early responses (ticket #669).
Maxim Dounin <mdounin@mdounin.ru>
parents:
6290
diff
changeset
|
378 unsigned request_body_sent:1; |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2422
diff
changeset
|
379 unsigned header_sent:1; |
479 | 380 }; |
381 | |
382 | |
2268
33556140681a
*) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents:
2184
diff
changeset
|
383 typedef struct { |
33556140681a
*) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents:
2184
diff
changeset
|
384 ngx_uint_t status; |
33556140681a
*) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents:
2184
diff
changeset
|
385 ngx_uint_t mask; |
33556140681a
*) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents:
2184
diff
changeset
|
386 } ngx_http_upstream_next_t; |
33556140681a
*) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents:
2184
diff
changeset
|
387 |
33556140681a
*) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents:
2184
diff
changeset
|
388 |
4328
d15a00e6d9e6
Added the ngx_http_upstream_param_set_slot().
Valentin Bartenev <vbart@nginx.com>
parents:
4197
diff
changeset
|
389 typedef struct { |
d15a00e6d9e6
Added the ngx_http_upstream_param_set_slot().
Valentin Bartenev <vbart@nginx.com>
parents:
4197
diff
changeset
|
390 ngx_str_t key; |
d15a00e6d9e6
Added the ngx_http_upstream_param_set_slot().
Valentin Bartenev <vbart@nginx.com>
parents:
4197
diff
changeset
|
391 ngx_str_t value; |
d15a00e6d9e6
Added the ngx_http_upstream_param_set_slot().
Valentin Bartenev <vbart@nginx.com>
parents:
4197
diff
changeset
|
392 ngx_uint_t skip_empty; |
d15a00e6d9e6
Added the ngx_http_upstream_param_set_slot().
Valentin Bartenev <vbart@nginx.com>
parents:
4197
diff
changeset
|
393 } ngx_http_upstream_param_t; |
d15a00e6d9e6
Added the ngx_http_upstream_param_set_slot().
Valentin Bartenev <vbart@nginx.com>
parents:
4197
diff
changeset
|
394 |
d15a00e6d9e6
Added the ngx_http_upstream_param_set_slot().
Valentin Bartenev <vbart@nginx.com>
parents:
4197
diff
changeset
|
395 |
5677
3a48775f1535
Upstream: added the "$upstream_cookie_<name>" variables.
Vladimir Homutov <vl@nginx.com>
parents:
5661
diff
changeset
|
396 ngx_int_t ngx_http_upstream_cookie_variable(ngx_http_request_t *r, |
3a48775f1535
Upstream: added the "$upstream_cookie_<name>" variables.
Vladimir Homutov <vl@nginx.com>
parents:
5661
diff
changeset
|
397 ngx_http_variable_value_t *v, uintptr_t data); |
1162 | 398 ngx_int_t ngx_http_upstream_header_variable(ngx_http_request_t *r, |
399 ngx_http_variable_value_t *v, uintptr_t data); | |
400 | |
3006
95972b9e790b
ngx_http_upstream_create() to cleanup the previous upstream after
Igor Sysoev <igor@sysoev.ru>
parents:
2952
diff
changeset
|
401 ngx_int_t ngx_http_upstream_create(ngx_http_request_t *r); |
479 | 402 void ngx_http_upstream_init(ngx_http_request_t *r); |
651 | 403 ngx_http_upstream_srv_conf_t *ngx_http_upstream_add(ngx_conf_t *cf, |
884 | 404 ngx_url_t *u, ngx_uint_t flags); |
3399 | 405 char *ngx_http_upstream_bind_set_slot(ngx_conf_t *cf, ngx_command_t *cmd, |
3271
fcd98af88df3
proxy_bind, fastcgi_bind, and memcached_bind
Igor Sysoev <igor@sysoev.ru>
parents:
3269
diff
changeset
|
406 void *conf); |
4328
d15a00e6d9e6
Added the ngx_http_upstream_param_set_slot().
Valentin Bartenev <vbart@nginx.com>
parents:
4197
diff
changeset
|
407 char *ngx_http_upstream_param_set_slot(ngx_conf_t *cf, ngx_command_t *cmd, |
d15a00e6d9e6
Added the ngx_http_upstream_param_set_slot().
Valentin Bartenev <vbart@nginx.com>
parents:
4197
diff
changeset
|
408 void *conf); |
1701
40d004d95d88
*) now ngx_conf_set_str_array_slot() tests NGX_CONF_UNSET_PTR
Igor Sysoev <igor@sysoev.ru>
parents:
1658
diff
changeset
|
409 ngx_int_t ngx_http_upstream_hide_headers_hash(ngx_conf_t *cf, |
40d004d95d88
*) now ngx_conf_set_str_array_slot() tests NGX_CONF_UNSET_PTR
Igor Sysoev <igor@sysoev.ru>
parents:
1658
diff
changeset
|
410 ngx_http_upstream_conf_t *conf, ngx_http_upstream_conf_t *prev, |
40d004d95d88
*) now ngx_conf_set_str_array_slot() tests NGX_CONF_UNSET_PTR
Igor Sysoev <igor@sysoev.ru>
parents:
1658
diff
changeset
|
411 ngx_str_t *default_hide_headers, ngx_hash_init_t *hash); |
884 | 412 |
413 | |
414 #define ngx_http_conf_upstream_srv_conf(uscf, module) \ | |
415 uscf->srv_conf[module.ctx_index] | |
509 | 416 |
479 | 417 |
2875
6e1941b321b7
proxy_cache_methods and fastcgi_cache_methods
Igor Sysoev <igor@sysoev.ru>
parents:
2786
diff
changeset
|
418 extern ngx_module_t ngx_http_upstream_module; |
6e1941b321b7
proxy_cache_methods and fastcgi_cache_methods
Igor Sysoev <igor@sysoev.ru>
parents:
2786
diff
changeset
|
419 extern ngx_conf_bitmask_t ngx_http_upstream_cache_method_mask[]; |
3667
12bd9e26fadb
use shared ngx_http_upstream_ignore_headers_masks[]
Igor Sysoev <igor@sysoev.ru>
parents:
3526
diff
changeset
|
420 extern ngx_conf_bitmask_t ngx_http_upstream_ignore_headers_masks[]; |
2875
6e1941b321b7
proxy_cache_methods and fastcgi_cache_methods
Igor Sysoev <igor@sysoev.ru>
parents:
2786
diff
changeset
|
421 |
479 | 422 |
423 #endif /* _NGX_HTTP_UPSTREAM_H_INCLUDED_ */ |