annotate src/http/ngx_http_upstream.h @ 6703:edcd9303a4d3

Upstream: introduced u->upstream. It holds upstream{} block configuration, including ones selected via run-time lookup using variables.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 22 Sep 2016 19:32:26 +0300
parents c131f20c9562
children 29bf0dbc0a77
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
1
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
2 /*
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
3 * Copyright (C) Igor Sysoev
4412
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 4385
diff changeset
4 * Copyright (C) Nginx, Inc.
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
5 */
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
6
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 #ifndef _NGX_HTTP_UPSTREAM_H_INCLUDED_
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 #define _NGX_HTTP_UPSTREAM_H_INCLUDED_
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
12 #include <ngx_config.h>
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
13 #include <ngx_core.h>
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
14 #include <ngx_event.h>
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
15 #include <ngx_event_connect.h>
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
16 #include <ngx_event_pipe.h>
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
17 #include <ngx_http.h>
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
18
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
19
665
5fd7a5e99047 nginx-0.3.54-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 663
diff changeset
20 #define NGX_HTTP_UPSTREAM_FT_ERROR 0x00000002
5fd7a5e99047 nginx-0.3.54-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 663
diff changeset
21 #define NGX_HTTP_UPSTREAM_FT_TIMEOUT 0x00000004
5fd7a5e99047 nginx-0.3.54-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 663
diff changeset
22 #define NGX_HTTP_UPSTREAM_FT_INVALID_HEADER 0x00000008
5fd7a5e99047 nginx-0.3.54-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 663
diff changeset
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
0be898896d1a backup upstream servers
Igor Sysoev <igor@sysoev.ru>
parents: 1295
diff changeset
33 #define NGX_HTTP_UPSTREAM_FT_NOLIVE 0x40000000
665
5fd7a5e99047 nginx-0.3.54-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 663
diff changeset
34 #define NGX_HTTP_UPSTREAM_FT_OFF 0x80000000
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
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
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
42
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
43 #define NGX_HTTP_UPSTREAM_INVALID_HEADER 40
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
44
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
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
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
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
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
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
254c09d0f791 style fix
Igor Sysoev <igor@sysoev.ru>
parents: 3699
diff changeset
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
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 561
diff changeset
67
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
68 ngx_str_t *peer;
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
69 } ngx_http_upstream_state_t;
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
70
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
71
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
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
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
75 /* ngx_http_upstream_srv_conf_t */
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
76 } ngx_http_upstream_main_conf_t;
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
77
884
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
78 typedef struct ngx_http_upstream_srv_conf_s ngx_http_upstream_srv_conf_t;
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
79
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
80 typedef ngx_int_t (*ngx_http_upstream_init_pt)(ngx_conf_t *cf,
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
81 ngx_http_upstream_srv_conf_t *us);
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
82 typedef ngx_int_t (*ngx_http_upstream_init_peer_pt)(ngx_http_request_t *r,
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
83 ngx_http_upstream_srv_conf_t *us);
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
84
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
85
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
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
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
90 } ngx_http_upstream_peer_t;
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
91
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
92
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
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
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
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
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
103 } ngx_http_upstream_server_t;
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
104
651
39b7d7b33c91 nginx-0.3.47-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 649
diff changeset
105
884
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
106 #define NGX_HTTP_UPSTREAM_CREATE 0x0001
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
107 #define NGX_HTTP_UPSTREAM_WEIGHT 0x0002
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
108 #define NGX_HTTP_UPSTREAM_MAX_FAILS 0x0004
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
109 #define NGX_HTTP_UPSTREAM_FAIL_TIMEOUT 0x0008
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
110 #define NGX_HTTP_UPSTREAM_DOWN 0x0010
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
111 #define NGX_HTTP_UPSTREAM_BACKUP 0x0020
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
112
651
39b7d7b33c91 nginx-0.3.47-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 649
diff changeset
113
884
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
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
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
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
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
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
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
131 };
651
39b7d7b33c91 nginx-0.3.47-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 649
diff changeset
132
39b7d7b33c91 nginx-0.3.47-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 649
diff changeset
133
39b7d7b33c91 nginx-0.3.47-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 649
diff changeset
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
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
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
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
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
e5d7d0334fdb nginx-0.1.39-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 527
diff changeset
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
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
163
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
164 ngx_bufs_t bufs;
529
e5d7d0334fdb nginx-0.1.39-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 527
diff changeset
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
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
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
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
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
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
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
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
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
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
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
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
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
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
217
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
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
7d16774c757c style fix
Igor Sysoev <igor@sysoev.ru>
parents: 2592
diff changeset
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
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
225 #endif
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
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
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
228 } ngx_http_upstream_conf_t;
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
229
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
230
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
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
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
238 } ngx_http_upstream_header_t;
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
239
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
240
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
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
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
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
e5d7d0334fdb nginx-0.1.39-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 527
diff changeset
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
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
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
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
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
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
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
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
267
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
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
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
270 #endif
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
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
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
280 } ngx_http_upstream_headers_in_t;
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
281
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
282
1658
13f8dec720b5 proxy_pass variables support
Igor Sysoev <igor@sysoev.ru>
parents: 1565
diff changeset
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
13f8dec720b5 proxy_pass variables support
Igor Sysoev <igor@sysoev.ru>
parents: 1565
diff changeset
295 } ngx_http_upstream_resolved_t;
13f8dec720b5 proxy_pass variables support
Igor Sysoev <igor@sysoev.ru>
parents: 1565
diff changeset
296
13f8dec720b5 proxy_pass variables support
Igor Sysoev <igor@sysoev.ru>
parents: 1565
diff changeset
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
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
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
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
307
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
308 ngx_event_pipe_t *pipe;
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
309
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
310 ngx_chain_t *request_bufs;
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
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
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
314
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
315 ngx_http_upstream_conf_t *conf;
6703
edcd9303a4d3 Upstream: introduced u->upstream.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6654
diff changeset
316 ngx_http_upstream_srv_conf_t *upstream;
5951
610832763648 Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents: 5949
diff changeset
317 #if (NGX_HTTP_CACHE)
610832763648 Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents: 5949
diff changeset
318 ngx_array_t *caches;
610832763648 Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents: 5949
diff changeset
319 #endif
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
320
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
321 ngx_http_upstream_headers_in_t headers_in;
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
322
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
323 ngx_http_upstream_resolved_t *resolved;
1658
13f8dec720b5 proxy_pass variables support
Igor Sysoev <igor@sysoev.ru>
parents: 1565
diff changeset
324
5072
7fa7e60a7f66 Proxy: support for connection upgrade (101 Switching Protocols).
Maxim Dounin <mdounin@mdounin.ru>
parents: 5008
diff changeset
325 ngx_buf_t from_client;
7fa7e60a7f66 Proxy: support for connection upgrade (101 Switching Protocols).
Maxim Dounin <mdounin@mdounin.ru>
parents: 5008
diff changeset
326
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
327 ngx_buf_t buffer;
4118
dbddec65fdab Upstream: r->upstream->length type change to off_t.
Maxim Dounin <mdounin@mdounin.ru>
parents: 3976
diff changeset
328 off_t length;
581
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
329
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
330 ngx_chain_t *out_bufs;
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
331 ngx_chain_t *busy_bufs;
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
332 ngx_chain_t *free_bufs;
581
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
333
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
334 ngx_int_t (*input_filter_init)(void *data);
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
335 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
336 void *input_filter_ctx;
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
337
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
338 #if (NGX_HTTP_CACHE)
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
339 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
340 #endif
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
341 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
342 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
343 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
344 void (*abort_request)(ngx_http_request_t *r);
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
345 void (*finalize_request)(ngx_http_request_t *r,
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
346 ngx_int_t rc);
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
347 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
348 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
349 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
350 ngx_table_elt_t *h);
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
351
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
352 ngx_msec_t timeout;
527
7fa11e5c6e96 nginx-0.1.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
353
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
354 ngx_http_upstream_state_t *state;
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
355
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
356 ngx_str_t method;
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
357 ngx_str_t schema;
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
358 ngx_str_t uri;
555
7bd37aef1e7e nginx-0.2.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 529
diff changeset
359
5660
7022564a9e0e Upstream: proxy_ssl_name and proxy_ssl_server_name directives.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5475
diff changeset
360 #if (NGX_HTTP_SSL)
7022564a9e0e Upstream: proxy_ssl_name and proxy_ssl_server_name directives.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5475
diff changeset
361 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
362 #endif
7022564a9e0e Upstream: proxy_ssl_name and proxy_ssl_server_name directives.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5475
diff changeset
363
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
364 ngx_http_cleanup_pt *cleanup;
569
174f1e853e1e nginx-0.3.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 563
diff changeset
365
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
366 unsigned store:1;
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
367 unsigned cacheable:1;
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
368 unsigned accel:1;
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
369 unsigned ssl:1;
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
370 #if (NGX_HTTP_CACHE)
2952
0998606fbfd4 $upstream_cache_status
Igor Sysoev <igor@sysoev.ru>
parents: 2927
diff changeset
371 unsigned cache_status:3;
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
372 #endif
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
373
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
374 unsigned buffering:1;
4120
42135dd1f0ea Upstream: keepalive flag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4118
diff changeset
375 unsigned keepalive:1;
5072
7fa7e60a7f66 Proxy: support for connection upgrade (101 Switching Protocols).
Maxim Dounin <mdounin@mdounin.ru>
parents: 5008
diff changeset
376 unsigned upgrade:1;
649
1e720b0be7ec nginx-0.3.46-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 629
diff changeset
377
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
378 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
379 unsigned request_body_sent:1;
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2422
diff changeset
380 unsigned header_sent:1;
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
381 };
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
382
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
383
2268
33556140681a *) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents: 2184
diff changeset
384 typedef struct {
33556140681a *) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents: 2184
diff changeset
385 ngx_uint_t status;
33556140681a *) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents: 2184
diff changeset
386 ngx_uint_t mask;
33556140681a *) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents: 2184
diff changeset
387 } ngx_http_upstream_next_t;
33556140681a *) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents: 2184
diff changeset
388
33556140681a *) ngx_http_upstream_test_next()
Igor Sysoev <igor@sysoev.ru>
parents: 2184
diff changeset
389
4328
d15a00e6d9e6 Added the ngx_http_upstream_param_set_slot().
Valentin Bartenev <vbart@nginx.com>
parents: 4197
diff changeset
390 typedef struct {
d15a00e6d9e6 Added the ngx_http_upstream_param_set_slot().
Valentin Bartenev <vbart@nginx.com>
parents: 4197
diff changeset
391 ngx_str_t key;
d15a00e6d9e6 Added the ngx_http_upstream_param_set_slot().
Valentin Bartenev <vbart@nginx.com>
parents: 4197
diff changeset
392 ngx_str_t value;
d15a00e6d9e6 Added the ngx_http_upstream_param_set_slot().
Valentin Bartenev <vbart@nginx.com>
parents: 4197
diff changeset
393 ngx_uint_t skip_empty;
d15a00e6d9e6 Added the ngx_http_upstream_param_set_slot().
Valentin Bartenev <vbart@nginx.com>
parents: 4197
diff changeset
394 } ngx_http_upstream_param_t;
d15a00e6d9e6 Added the ngx_http_upstream_param_set_slot().
Valentin Bartenev <vbart@nginx.com>
parents: 4197
diff changeset
395
d15a00e6d9e6 Added the ngx_http_upstream_param_set_slot().
Valentin Bartenev <vbart@nginx.com>
parents: 4197
diff changeset
396
5677
3a48775f1535 Upstream: added the "$upstream_cookie_<name>" variables.
Vladimir Homutov <vl@nginx.com>
parents: 5661
diff changeset
397 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
398 ngx_http_variable_value_t *v, uintptr_t data);
1162
f59d15404269 $upstream_http_... variables
Igor Sysoev <igor@sysoev.ru>
parents: 906
diff changeset
399 ngx_int_t ngx_http_upstream_header_variable(ngx_http_request_t *r,
f59d15404269 $upstream_http_... variables
Igor Sysoev <igor@sysoev.ru>
parents: 906
diff changeset
400 ngx_http_variable_value_t *v, uintptr_t data);
f59d15404269 $upstream_http_... variables
Igor Sysoev <igor@sysoev.ru>
parents: 906
diff changeset
401
3006
95972b9e790b ngx_http_upstream_create() to cleanup the previous upstream after
Igor Sysoev <igor@sysoev.ru>
parents: 2952
diff changeset
402 ngx_int_t ngx_http_upstream_create(ngx_http_request_t *r);
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
403 void ngx_http_upstream_init(ngx_http_request_t *r);
651
39b7d7b33c91 nginx-0.3.47-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 649
diff changeset
404 ngx_http_upstream_srv_conf_t *ngx_http_upstream_add(ngx_conf_t *cf,
884
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
405 ngx_url_t *u, ngx_uint_t flags);
3399
ac9c0380337d fix typo
Igor Sysoev <igor@sysoev.ru>
parents: 3271
diff changeset
406 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
407 void *conf);
4328
d15a00e6d9e6 Added the ngx_http_upstream_param_set_slot().
Valentin Bartenev <vbart@nginx.com>
parents: 4197
diff changeset
408 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
409 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
410 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
411 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
412 ngx_str_t *default_hide_headers, ngx_hash_init_t *hash);
884
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
413
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
414
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
415 #define ngx_http_conf_upstream_srv_conf(uscf, module) \
4d68c486fcb0 upstream choice modules
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
416 uscf->srv_conf[module.ctx_index]
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
417
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
418
2875
6e1941b321b7 proxy_cache_methods and fastcgi_cache_methods
Igor Sysoev <igor@sysoev.ru>
parents: 2786
diff changeset
419 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
420 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
421 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
422
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
423
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
424 #endif /* _NGX_HTTP_UPSTREAM_H_INCLUDED_ */