annotate docs/html/http/ngx_http_core_module.html @ 4109:dc1fa52222b4

Regenerated after previous commit.
author Ruslan Ermilov <ru@nginx.com>
date Thu, 15 Sep 2011 08:33:25 +0000
parents b7c944d1a5a8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4109
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>HTTP Core Module</title></head><body><center><h3>HTTP Core Module</h3></center><a name="directives"></a><center><h4>Directives</h4></center><hr><a name="aio"></a><strong>syntax</strong>:
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
2 <code>aio
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
3 <code>on</code> |
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
4 <code>off</code> |
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
5 <code>sendfile</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
6 <code>aio off</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
7 <code>http</code>, <code>server</code>, <code>location</code><br><strong>appeared in version</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
8 0.8.11<p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
9 Enables or disables the use of asynchronous file I/O (AIO)
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
10 on FreeBSD and Linux.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
11 </p><p>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
12 On FreeBSD, AIO is usable starting from FreeBSD 4.3.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
13 AIO can either be linked statically into a kernel:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
14 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
15 options VFS_AIO
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
16 </pre></blockquote>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
17 or loaded dynamically as a kernel loadable module:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
18 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
19 kldload aio
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
20 </pre></blockquote></p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
21 In FreeBSD versions 5 and 6, enabling AIO statically, or dynamically
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
22 when booting the kernel, will cause the entire networking subsystem
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
23 to use the Giant lock that can impact overall performance negatively.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
24 This limitation has been removed in FreeBSD 6.4-STABLE in 2009, and in
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
25 FreeBSD 7.
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
26 However, starting from FreeBSD 5.3 it is possible to enable AIO
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
27 without the penalty of running the networking subsystem under a
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
28 Giant lock - for this to work, the AIO module needs to be loaded
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
29 after the kernel has booted.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
30 In this case, the following message will appear in
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
31 <code>/var/log/messages</code><blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
32 WARNING: Network stack Giant-free, but aio requires Giant.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
33 Consider adding 'options NET_WITH_GIANT' or setting debug.mpsafenet=0
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
34 </pre></blockquote>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
35 and can safely be ignored.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
36
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
37 The requirement to use the Giant lock with AIO is related to the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
38 fact that FreeBSD supports asynchronous calls
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
39 <code>aio_read()</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
40 and
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
41 <code>aio_write()</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
42 when working with sockets.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
43 However, since nginx only uses AIO for disk I/O, no problems should arise.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
44 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
45 For AIO to work,
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
46 <a href="#sendfile">sendfile</a>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
47 needs to be disabled:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
48 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
49 location /video/ {
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
50 sendfile off;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
51 aio on;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
52 output_buffers 1 64k;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
53 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
54 </pre></blockquote></p><p>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
55 In addition, starting from FreeBSD 5.2.1 and nginx 0.8.12, AIO can
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
56 also be used to pre-load data for <code>sendfile()</code>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
57 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
58 location /video/ {
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
59 sendfile on;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
60 tcp_nopush on;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
61 aio sendfile;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
62 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
63 </pre></blockquote>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
64 In this configuration, <code>sendfile()</code> is called with
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
65 the <code>SF_NODISKIO</code> flag which causes it not to
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
66 block on disk I/O and instead report back when the data are not in
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
67 memory; nginx then initiates an asynchronous data load by reading
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
68 one byte. The FreeBSD kernel then loads the first 128K bytes
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
69 of a file into memory, however next reads will only load data
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
70 in 16K chunks. This can be tuned using the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
71 <a href="#read_ahead">read_ahead</a>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
72 directive.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
73 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
74 On Linux, AIO is usable starting from kernel version 2.6.22;
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
75 plus, it is also necessary to enable
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
76 <a href="#directio">directio</a>,
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
77 otherwise reading will be blocking:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
78 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
79 location /video/ {
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
80 aio on;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
81 directio 512;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
82 output_buffers 1 128k;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
83 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
84 </pre></blockquote></p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
85 On Linux,
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
86 <a href="#directio">directio</a>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
87 can only be used for reading blocks that are aligned on 512-byte
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
88 boundaries (or 4K for XFS).
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
89 Reading of unaligned file's end is still made in blocking mode.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
90 The same holds true for byte range requests, and for FLV requests
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
91 not from the beginning of a file: reading of unaligned data at the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
92 beginning and end of a file will be blocking.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
93 There is no need to turn off
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
94 <a href="#sendfile">sendfile</a>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
95 explicitly as it is turned off automatically when
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
96 <a href="#directio">directio</a>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
97 is used.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
98 </p><hr><a name="alias"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
99 <code>alias <code><i>path</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
100 <strong>none</strong><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
101 <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
102 Defines a replacement for the specified location.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
103 For example, with the following configuration
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
104 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
105 location /i/ {
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
106 alias /data/w3/images/;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
107 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
108 </pre></blockquote>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
109 the request of
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
110 &ldquo;<code>/i/top.gif</code>&rdquo; will be responded
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
111 with the file
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
112 &ldquo;<code>/data/w3/images/top.gif</code>&rdquo;.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
113 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
114 The <code><i>path</i></code> value can contain variables.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
115 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
116 If <code>alias</code> is used inside a location defined
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
117 with a regular expression then such regular expression should
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
118 contain captures and <code>alias</code> should refer to
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
119 these captures (0.7.40), for example:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
120 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
121 location ~ ^/users/(.+\.(?:gif|jpe?g|png))$ {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
122 alias /data/w3/images/$1;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
123 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
124 </pre></blockquote></p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
125 When location matches the last part of the directive's value:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
126 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
127 location /images/ {
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
128 alias /data/w3/images/;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
129 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
130 </pre></blockquote>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
131 it is better to use the
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
132 <a href="#root">root</a>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
133 directive instead:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
134 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
135 location /images/ {
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
136 root /data/w3;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
137 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
138 </pre></blockquote></p><hr><a name="client_body_in_file_only"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
139 <code>client_body_in_file_only
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
140 <code>on</code> |
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
141 <code>clean</code> |
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
142 <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
143 <code>client_body_in_file_only off</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
144 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
145 Determines whether nginx should save the entire client request body
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
146 into a file.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
147 This directive can be used during debugging, or when using the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
148 <code>$request_body_file</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
149 variable, or the
4084
b7c944d1a5a8 Regenerate after previous commits.
Ruslan Ermilov <ru@nginx.com>
parents: 4080
diff changeset
150 <a href="ngx_http_perl_module.html#methods">$r-&gt;request_body_file</a>
4109
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
151 method of the module
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
152 <a href="ngx_http_perl_module.html">ngx_http_perl_module</a>.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
153 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
154 When set to the value <code>on</code>, temporary files are not
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
155 removed after request processing.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
156 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
157 The value <code>clean</code> will cause the temporary files
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
158 left after request processing to be removed.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
159 </p><hr><a name="client_body_in_single_buffer"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
160 <code>client_body_in_single_buffer <code>on</code> | <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
161 <code>client_body_in_single_buffer off</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
162 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
163 Determines whether nginx should save the entire client request body
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
164 in a single buffer.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
165 The directive is recommended when using the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
166 <code>$request_body</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
167 variable, to save the number of copy operations involved.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
168 </p><hr><a name="client_body_buffer_size"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
169 <code>client_body_buffer_size <code><i>size</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
170 <code>client_body_buffer_size 8k/16k</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
171 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
172 Sets buffer size for reading client request body.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
173 In case request body is larger than the buffer,
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
174 the whole body or only its part is written to a temporary file.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
175
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
176 By default, buffer size is equal to two memory pages.
3996
fc808f006ff4 skeleton for documentation processing
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
177 This is 8K on x86, other 32-bit platforms, and x86-64.
fc808f006ff4 skeleton for documentation processing
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
178 It is usually 16K on other 64-bit platforms.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
179 </p><hr><a name="client_body_temp_path"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
180 <code>client_body_temp_path
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
181 <code><i>path</i></code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
182 [<code><i>level1</i></code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
183 [<code><i>level2</i></code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
184 [<code><i>level3</i></code>]]]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
185 </code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
186 <code>client_body_temp_path client_body_temp</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
187 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
188 Defines a directory for storing temporary files holding client request bodies.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
189 Up to three-level subdirectory hierarchy can be used underneath the specified
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
190 directory.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
191 For example, in the following configuration
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
192 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
193 client_body_temp_path /spool/nginx/client_temp 1 2;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
194 </pre></blockquote>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
195 a temporary file might look like this:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
196 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
197 /spool/nginx/client_temp/7/45/00000123457
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
198 </pre></blockquote></p><hr><a name="client_body_timeout"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
199 <code>client_body_timeout <code><i>time</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
200 <code>client_body_timeout 60</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
201 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
202 Defines a timeout for reading client request body.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
203 A timeout is only set between two successive read operations,
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
204 not for the transmission of the whole request body.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
205 If a client does not transmit anything within this time,
4109
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
206 the client error
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
207 408 (Request Time-out)
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
208 is returned.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
209 </p><hr><a name="client_header_buffer_size"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
210 <code>client_header_buffer_size <code><i>size</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
211 <code>client_header_buffer_size 1k</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
212 <code>http</code>, <code>server</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
213 Sets buffer size for reading client request header.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
214 For most requests, a buffer of 1K bytes is enough.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
215 However, if a request includes long cookies, or comes from a WAP client,
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
216 it may not fit into 1K.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
217 If a request line, or a request header field do not fit entirely into
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
218 this buffer then larger buffers are allocated, configured by the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
219 <a href="#large_client_header_buffers">large_client_header_buffers</a>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
220 directive.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
221 </p><hr><a name="client_header_timeout"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
222 <code>client_header_timeout <code><i>time</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
223 <code>client_header_timeout 60</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
224 <code>http</code>, <code>server</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
225 Defines a timeout for reading client request header.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
226 If a client does not transmit the entire header within this time,
4109
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
227 the client error
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
228 408 (Request Time-out)
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
229 is returned.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
230 </p><hr><a name="client_max_body_size"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
231 <code>client_max_body_size <code><i>size</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
232 <code>client_max_body_size 1m</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
233 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
234 Sets the maximum allowed size of the client request body,
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
235 specified in the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
236 <code>Content-Length</code>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
237 request header field.
4109
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
238 If it exceeds the configured value, the client error
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
239 413 (Request Entity Too Large)
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
240 is returned.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
241 Please be aware that
4084
b7c944d1a5a8 Regenerate after previous commits.
Ruslan Ermilov <ru@nginx.com>
parents: 4080
diff changeset
242 <a href="/web/upload.html">browsers cannot correctly display
b7c944d1a5a8 Regenerate after previous commits.
Ruslan Ermilov <ru@nginx.com>
parents: 4080
diff changeset
243 this error</a>.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
244 </p><hr><a name="default_type"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
245 <code>default_type <code><i>mime-type</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
246 <code>default_type text/plain</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
247 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
248 Defines a default MIME-type of a response.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
249 </p><hr><a name="directio"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
250 <code>directio <code><i>size</i></code> | <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
251 <code>directio off</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
252 <code>http</code>, <code>server</code>, <code>location</code><br><strong>appeared in version</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
253 0.7.7<p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
254 Enables the use of
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
255 the <code>O_DIRECT</code> flag (FreeBSD, Linux),
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
256 the <code>F_NOCACHE</code> flag (Mac OS X),
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
257 or the <code>directio()</code> function (Solaris),
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
258 when reading files that are larger than the specified <code><i>size</i></code>.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
259 It automatically disables (0.7.15) the use of
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
260 <a href="#sendfile">sendfile</a>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
261 for a given request.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
262 It could be useful for serving large files:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
263 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
264 directio 4m;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
265 </pre></blockquote>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
266 or when using <a href="#aio">aio</a> on Linux.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
267 </p><hr><a name="directio_alignment"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
268 <code>directio_alignment <code><i>size</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
269 <code>directio_alignment 512</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
270 <code>http</code>, <code>server</code>, <code>location</code><br><strong>appeared in version</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
271 0.8.11<p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
272 Sets an alignment for
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
273 <a href="#directio">directio</a>.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
274 In most cases, a 512-byte alignment is enough, however, when
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
275 using XFS under Linux, it needs to be increased to 4K.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
276 </p><hr><a name="error_page"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
277 <code>error_page
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
278 <code><i>code</i></code> ...
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
279 [<code>=</code>[<code><i>response</i></code>]]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
280 <code><i>uri</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
281 <strong>none</strong><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
282 <code>http</code>, <code>server</code>, <code>location</code>, <code>if in location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
283 Defines the URI that will be shown for the specified errors.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
284 These directives are inherited from the previous level if and
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
285 only if there are no
4084
b7c944d1a5a8 Regenerate after previous commits.
Ruslan Ermilov <ru@nginx.com>
parents: 4080
diff changeset
286 <code>error_page</code>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
287 directives on
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
288 the current level.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
289 A URI value can contain variables.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
290 </p><p>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
291 Example:
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
292 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
293 error_page 404 /404.html;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
294 error_page 502 503 504 /50x.html;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
295 error_page 403 http://example.com/forbidden.html;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
296 </pre></blockquote></p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
297 Furthermore, it is possible to change the response code to another, for example:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
298 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
299 error_page 404 =200 /empty.gif;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
300 </pre></blockquote></p><p>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
301 If an error response is processed by a proxied server, or a FastCGI server,
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
302 and the server may return different response codes (e.g., 200, 302, 401
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
303 or 404), it is possible to respond with a returned code:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
304 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
305 error_page 404 = /404.php;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
306 </pre></blockquote></p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
307 If there is no need to change URI during redirection it is possible to redirect
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
308 error processing into a named location:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
309 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
310 location / {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
311 error_page 404 = @fallback;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
312 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
313
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
314 location @fallback {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
315 proxy_pass http://backend;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
316 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
317 </pre></blockquote></p><hr><a name="if_modified_since"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
318 <code>if_modified_since
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
319 <code>off</code> |
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
320 <code>exact</code> |
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
321 <code>before</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
322 <code>if_modified_since exact</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
323 <code>http</code>, <code>server</code>, <code>location</code><br><strong>appeared in version</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
324 0.7.24<p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
325 Specifies how to compare modification time of a response
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
326 with the time in the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
327 <code>If-Modified-Since</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
328 request header:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
329
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
330 <dl compact><dt><code>off</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
331 the
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
332 <code>If-Modified-Since</code> request header is ignored (0.7.34);
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
333 </dd><dt><code>exact</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
334 exact match;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
335 </dd><dt><code>before</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
336 modification time of a response is
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
337 less than or equal to the time in the <code>If-Modified-Since</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
338 request header.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
339 </dd></dl></p><hr><a name="internal"></a><strong>syntax</strong>:
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
340 <code>internal</code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
341 <strong>none</strong><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
342 <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
343 Specifies that a given location can only be used for internal requests.
4109
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
344 For external requests, the client error
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
345 404 (Not Found)
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
346 is returned.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
347 Internal requests are the following:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
348
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
349 <ul><li>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
350 requests redirected by the <a href="#error_page">error_page</a> directive;
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
351 </li><li>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
352 subrequests formed by the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
353 <code>include virtual</code>
4109
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
354 command of the module
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
355 <a href="ngx_http_ssi_module.html">ngx_http_ssi_module</a>;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
356 </li><li>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
357 requests changed by the
4084
b7c944d1a5a8 Regenerate after previous commits.
Ruslan Ermilov <ru@nginx.com>
parents: 4080
diff changeset
358 <a href="ngx_http_rewrite_module.html#rewrite">rewrite</a>
4109
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
359 directive of the module
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
360 <a href="ngx_http_rewrite_module.html">ngx_http_rewrite_module</a>.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
361 </li></ul></p><p>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
362 Example:
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
363 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
364 error_page 404 /404.html;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
365
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
366 location /404.html {
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
367 internal;
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
368 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
369 </pre></blockquote></p><hr><a name="keepalive_requests"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
370 <code>keepalive_requests <code><i>number</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
371 <code>keepalive_requests 100</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
372 <code>http</code>, <code>server</code>, <code>location</code><br><strong>appeared in version</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
373 0.8.0<p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
374 Sets the maximum number of requests that can be
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
375 made through one keep-alive connection.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
376 </p><hr><a name="keepalive_timeout"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
377 <code>keepalive_timeout
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
378 <code><i>time</i></code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
379 [<code><i>time</i></code>]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
380 </code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
381 <code>keepalive_timeout 75</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
382 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
383 The first argument sets a timeout during which a keep-alive
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
384 client connection will stay open on the server side.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
385 The optional second argument sets a value in the
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
386 &ldquo;<code>Keep-Alive: timeout=<code><i>time</i></code></code>&rdquo;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
387 response header.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
388 Two arguments may differ.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
389 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
390 The
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
391 &ldquo;<code>Keep-Alive: timeout=</code>&rdquo;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
392 is understood by Mozilla and Konqueror.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
393 MSIE will close keep-alive connection in about 60 seconds.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
394 </p><hr><a name="large_client_header_buffers"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
395 <code>large_client_header_buffers <code><i>number size</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
396 <code>large_client_header_buffers 4 4k/8k</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
397 <code>http</code>, <code>server</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
398 Sets the maximum <code><i>number</i></code> and <code><i>size</i></code> of
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
399 buffers used when reading large client request headers.
4109
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
400 A request line cannot exceed the size of one buffer, or the client error
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
401 414 (Request-URI Too Large)
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
402 is returned.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
403 A request header field cannot exceed the size of one buffer as well, or the
4109
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
404 client error
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
405 400 (Bad Request)
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
406 is returned.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
407 Buffers are allocated only on demand.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
408 By default, the buffer size is equal to one memory page size.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
409 It is either 4K or 8K, platform dependent.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
410 If after the end of request processing a connection is transitioned
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
411 into the keep-alive state, these buffers are freed.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
412 </p><hr><a name="limit_except"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
413 <code>limit_except <code><i>method</i></code> ... { ... }</code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
414 <strong>none</strong><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
415 <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
416 Limits allowed HTTP methods inside a location.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
417 The GET method also implies the HEAD method.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
418 Access to other methods can be limited using the
4109
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
419 <a href="ngx_http_access_module.html">ngx_http_access_module</a>
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
420 and
4109
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
421 <a href="ngx_http_auth_basic_module.html">ngx_http_auth_basic_module</a>
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
422 modules directives:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
423 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
424 limit_except GET {
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
425 allow 192.168.1.0/32;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
426 deny all;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
427 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
428 </pre></blockquote>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
429 Please note that this will limit access to all methods
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
430 <strong>except</strong> GET and HEAD.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
431 </p><hr><a name="limit_rate"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
432 <code>limit_rate <code><i>rate</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
433 <strong>none</strong><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
434 <code>http</code>, <code>server</code>, <code>location</code>, <code>if in location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
435 Rate limits the transmission of a response to a client.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
436 The <code><i>rate</i></code> is specified in bytes per second.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
437
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
438 The limit is per connection, so if a single client opens 2 connections,
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
439 an overall rate will be 2x more than specified.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
440 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
441 This directive is not applicable if one wants to rate limit
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
442 a group of clients on the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
443 <a href="#server">server</a>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
444 level.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
445 If that is the case, the desired limit can be specified in the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
446 <code>$limit_rate</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
447 variable:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
448 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
449 server {
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
450
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
451 if ($slow) {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
452 set $limit_rate 4k;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
453 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
454
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
455 ...
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
456 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
457 </pre></blockquote></p><hr><a name="limit_rate_after"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
458 <code>limit_rate_after <code><i>size</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
459 <strong>none</strong><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
460 <code>http</code>, <code>server</code>, <code>location</code>, <code>if in location</code><br><strong>appeared in version</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
461 0.8.0<p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
462 Sets the initial amount after which the further transmission
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
463 of a response to a client will be rate limited.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
464 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
465 Example:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
466 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
467 location /flv/ {
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
468 flv;
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
469 limit_rate_after 500k;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
470 limit_rate 50k;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
471 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
472 </pre></blockquote></p><hr><a name="listen"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
473 <code>listen
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
474 <code><i>address</i></code>[:<code><i>port</i></code>]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
475 [<code>default</code> | <code>default_server</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
476 [<code>backlog</code>=<code><i>number</i></code>]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
477 [<code>rcvbuf</code>=<code><i>size</i></code>]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
478 [<code>sndbuf</code>=<code><i>size</i></code>]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
479 [<code>accept_filter</code>=<code><i>filter</i></code>]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
480 [<code>deferred</code>]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
481 [<code>bind</code>]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
482 [<code>ipv6only</code>=<code>on</code>|<code>off</code>]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
483 [<code>ssl</code>]]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
484 </code><br><code>       </code><code>listen
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
485 <code><i>port</i></code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
486 [<code>default</code> | <code>default_server</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
487 [<code>backlog</code>=<code><i>number</i></code>]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
488 [<code>rcvbuf</code>=<code><i>size</i></code>]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
489 [<code>sndbuf</code>=<code><i>size</i></code>]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
490 [<code>accept_filter</code>=<code><i>filter</i></code>]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
491 [<code>deferred</code>]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
492 [<code>bind</code>]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
493 [<code>ipv6only</code>=<code>on</code>|<code>off</code>]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
494 [<code>ssl</code>]]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
495 </code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
496 <code>listen *:80 | *:8000</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
497 <code>server</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
498 Sets an <code><i>address</i></code> and a <code><i>port</i></code>, on which
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
499 the server will accept requests.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
500 Only one of <code><i>address</i></code> or <code><i>port</i></code> can be
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
501 specified.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
502 An <code><i>address</i></code> may also be a hostname, for example:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
503 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
504 listen 127.0.0.1:8000;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
505 listen 127.0.0.1;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
506 listen 8000;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
507 listen *:8000;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
508 listen localhost:8000;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
509 </pre></blockquote>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
510 IPv6 addresses (0.7.36) are specified in square brackets:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
511 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
512 listen [::]:8000;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
513 listen [fe80::1];
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
514 </pre></blockquote></p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
515 If only <code><i>address</i></code> is given, the port 80 is used.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
516 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
517 If directive is not present then either the <code>*:80</code> is used
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
518 if nginx runs with superuser privileges, or <code>*:8000</code> otherwise.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
519 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
520 The <code>default</code> parameter, if present,
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
521 will cause the server to become the default server for the specified
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
522 <code><i>address</i></code>:<code><i>port</i></code> pair.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
523 If none of the directives have the <code>default</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
524 parameter then the first server with the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
525 <code><i>address</i></code>:<code><i>port</i></code> pair will be
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
526 the default server for this pair.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
527 Starting from version 0.8.21 it is possible to use the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
528 <code>default_server</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
529 parameter.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
530 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
531 A <code>listen</code> directive which has the <code>default</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
532 parameter can have several additional parameters specific to system calls
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
533 <code>listen()</code> and <code>bind()</code>.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
534 Starting from version 0.8.21, these parameters can be specified in any
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
535 <code>listen</code> directive, but only once for the given
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
536 <code><i>address</i></code>:<code><i>port</i></code> pair.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
537 <dl compact><dt><code>backlog</code>=<code><i>number</i></code></dt><dd>
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
538 sets the <code>backlog</code> parameter in the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
539 <code>listen()</code> call.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
540 By default, <code>backlog</code> equals -1 on FreeBSD
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
541 and 511 on other platforms.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
542 </dd><dt><code>rcvbuf</code>=<code><i>size</i></code></dt><dd>
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
543 sets the <code>SO_RCVBUF</code> parameter for the listening socket.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
544 </dd><dt><code>sndbuf</code>=<code><i>size</i></code></dt><dd>
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
545 sets the <code>SO_SNDBUF</code> parameter for the listening socket.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
546 </dd><dt><code>accept_filter</code>=<code><i>filter</i></code></dt><dd>
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
547 sets the name of the accept filter.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
548 This works only on FreeBSD, acceptable values are <code>dataready</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
549 and <code>httpready</code>.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
550 On receipt of the <code>SIGHUP</code> signal, an accept filter can only be
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
551 changed in recent versions of FreeBSD, starting from 6.0, 5.4-STABLE
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
552 and 4.11-STABLE.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
553 </dd><dt><code>deferred</code></dt><dd>
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
554 instructs to use a deferred <code>accept()</code> on Linux
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
555 using the <code>TCP_DEFER_ACCEPT</code> option.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
556 </dd><dt><code>bind</code></dt><dd>
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
557 specifies to make a separate <code>bind()</code> call for a given
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
558 <code><i>address</i></code>:<code><i>port</i></code> pair.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
559 This is because nginx will only <code>bind()</code> to
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
560 <code>*</code>:<code><i>port</i></code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
561 if there are several <code>listen</code> directives with
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
562 the same port but different addresses, and one of the
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
563 <code>listen</code> directives listens on all addresses
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
564 for the given port (<code>*</code>:<code><i>port</i></code>).
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
565 It should be noted that in this case a <code>getsockname()</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
566 system call will be made to determine an address that accepted a
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
567 connection.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
568 If parameters <code>backlog</code>, <code>rcvbuf</code>,
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
569 <code>sndbuf</code>, <code>accept_filter</code>, or
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
570 <code>deferred</code> are used then for a given
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
571 <code><i>address</i></code>:<code><i>port</i></code> pair
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
572 a separate <code>bind()</code> call will always be made.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
573 </dd><dt><code>ipv6only</code>=<code>on</code>|<code>off</code></dt><dd>
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
574 this parameter (0.7.42) sets the value of the <code>IPV6_V6ONLY</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
575 parameter for the listening socket.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
576 This parameter can only be set once on start.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
577 </dd><dt><code>ssl</code></dt><dd>
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
578 this parameter (0.7.14) does not relate to system calls
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
579 <code>listen()</code> and <code>bind()</code>, but allows to
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
580 specify that all connections accepted on this port should work in
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
581 the SSL mode.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
582 This allows for a more compact configuration for the server operating
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
583 in both HTTP and HTTPS modes simultaneously.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
584 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
585 listen 80;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
586 listen 443 default ssl;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
587 </pre></blockquote></dd></dl></p><p>
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
588 Example:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
589 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
590 listen 127.0.0.1 default accept_filter=dataready backlog=1024;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
591 </pre></blockquote></p><hr><a name="location"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
592 <code>location [
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
593 <code>=</code> |
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
594 <code>~</code> |
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
595 <code>~*</code> |
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
596 <code>^~</code> |
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
597 <code>@</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
598 ] <code><i>uri</i></code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
599 { ... }</code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
600 <strong>none</strong><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
601 <code>server</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
602 Sets a configuration based on a request URI.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
603 A location can either be defined by a prefix string, or by a regular expression.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
604 Regular expressions are specified by prepending them with the
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
605 &ldquo;<code>~*</code>&rdquo; prefix (for case-insensitive matching), or with the
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
606 &ldquo;<code>~</code>&rdquo; prefix (for case-sensitive matching).
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
607 To find a location matching a given request, nginx first checks
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
608 locations defined using the prefix strings (prefix locations).
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
609 Amongst them, the most specific one is searched.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
610 Then regular expressions are checked, in the order of their appearance
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
611 in a configuration file.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
612 A search terminates on the first match, and its corresponding
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
613 configuration is used.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
614 If no match with a regular expression location is found then a
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
615 configuration of the most specific prefix location is used.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
616 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
617 For case-insensitive operating systems such as Mac OS X and Cygwin,
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
618 the string matching ignores a case (0.7.7).
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
619 However, comparison is limited to one-byte locales.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
620 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
621 Regular expressions can contain captures (0.7.40) that can later
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
622 be used in other directives.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
623 </p><p>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
624 If the most specific prefix location has the &ldquo;<code>^~</code>&rdquo; prefix
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
625 then regular expressions are not checked.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
626 </p><p>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
627 Also, using the &ldquo;<code>=</code>&rdquo; prefix it is possible to define
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
628 an exact match of URI and location.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
629 If an exact match is found, the search terminates.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
630 For example, if a &ldquo;<code>/</code>&rdquo; request happens frequently,
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
631 defining &ldquo;<code>location = /</code>&rdquo; will speed up the processing
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
632 of these requests, as search terminates right after the first
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
633 comparison.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
634 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
635 In versions from 0.7.1 to 0.8.41, if a request matched the prefix
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
636 location without the &ldquo;<code>=</code>&rdquo; and &ldquo;<code>^~</code>&rdquo;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
637 prefixes, the search also terminated and regular expressions were
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
638 not checked.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
639 </p><p>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
640 Let's illustrate the above by example:
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
641 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
642 location = / {
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
643 [ configuration A ]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
644 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
645
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
646 location / {
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
647 [ configuration B ]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
648 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
649
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
650 location ^~ /images/ {
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
651 [ configuration C ]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
652 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
653
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
654 location ~* \.(gif|jpg|jpeg)$ {
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
655 [ configuration D ]
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
656 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
657 </pre></blockquote>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
658 The &ldquo;<code>/</code>&rdquo; request will match configuration A,
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
659 the &ldquo;<code>/documents/document.html</code>&rdquo; request will match
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
660 configuration B,
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
661 the &ldquo;<code>/images/1.gif</code>&rdquo; request will match configuration C, and
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
662 the &ldquo;<code>/documents/1.jpg</code>&rdquo; request will match configuration D.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
663 </p><p>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
664 The &ldquo;<code>@</code>&rdquo; prefix defines a named location.
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
665 Such a location is not used for a regular request processing, but instead
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
666 used for request redirection.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
667 </p><hr><a name="log_not_found"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
668 <code>log_not_found <code>on</code> | <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
669 <code>log_not_found on</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
670 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
671 Enables or disables logging of errors about not found files into the
4084
b7c944d1a5a8 Regenerate after previous commits.
Ruslan Ermilov <ru@nginx.com>
parents: 4080
diff changeset
672 <a href="../ngx_core_module.html#error_log">error_log</a>.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
673 </p><hr><a name="log_subrequest"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
674 <code>log_subrequest <code>on</code> | <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
675 <code>log_subrequest off</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
676 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
677 Enables or disables logging of subrequests into the
4084
b7c944d1a5a8 Regenerate after previous commits.
Ruslan Ermilov <ru@nginx.com>
parents: 4080
diff changeset
678 <a href="ngx_http_log_module.html#access_log">access_log</a>.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
679 </p><hr><a name="merge_slashes"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
680 <code>merge_slashes <code>on</code> | <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
681 <code>merge_slashes on</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
682 <code>http</code>, <code>server</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
683 Enables or disables compression of two or more adjacent slashes
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
684 in a URI into a single slash.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
685 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
686 Note that compression is essential for the correct prefix string
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
687 and regular expressions location matching.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
688 Without it, the &ldquo;<code>//scripts/one.php</code>&rdquo; request would not match
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
689 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
690 location /scripts/ {
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
691 ...
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
692 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
693 </pre></blockquote>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
694 and might be processed as a static file,
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
695 so it gets converted to &ldquo;<code>/scripts/one.php</code>&rdquo;.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
696 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
697 Turning the compression <code>off</code> can become necessary if a URI
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
698 contains base64-encoded names, since base64 uses the "/" character internally.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
699 However, for security considerations, it is better to avoid turning off
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
700 the compression.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
701 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
702 If a directive is specified on the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
703 <a href="#server">server</a>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
704 level, which is also a default server, its value will cover
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
705 all virtual servers listening on the same address and port.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
706 </p><hr><a name="msie_padding"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
707 <code>msie_padding <code>on</code> | <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
708 <code>msie_padding on</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
709 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
710 Enables or disables adding of comments to responses with status
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
711 greater than 400 for MSIE clients, to pad the response size to 512 bytes.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
712 </p><hr><a name="msie_refresh"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
713 <code>msie_refresh <code>on</code> | <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
714 <code>msie_refresh off</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
715 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
716 Enables or disables issuing refreshes instead of redirects, for MSIE clients.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
717 </p><hr><a name="open_file_cache"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
718 <code>open_file_cache
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
719 <code>max</code>=<code><i>N</i></code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
720 [<code>inactive</code>=<code><i>time</i></code>] |
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
721 <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
722 <code>open_file_cache off</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
723 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
724 Configures a cache that can store:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
725 <ul><li>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
726 open file descriptors, their sizes and modification times;
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
727 </li><li>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
728 directory lookups;
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
729 </li><li>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
730 file lookup errors, such as "file not found", "no read permission",
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
731 and so on.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
732 Caching of errors should be enabled separately by the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
733 <a href="#open_file_cache_errors">open_file_cache_errors</a>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
734 directive.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
735 </li></ul></p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
736 The directive has the following parameters:
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
737 <dl compact><dt><code>max</code></dt><dd>
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
738 sets the maximum number of elements in the cache;
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
739 on cache overflow the least recently used (LRU) elements get removed;
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
740 </dd><dt><code>inactive</code></dt><dd>
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
741 defines a time, after which the element gets removed from the cache
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
742 if there were no accesses to it during this time;
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
743 by default, it is 60 seconds;
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
744 </dd><dt><code>off</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
745 disables the cache.
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
746 </dd></dl></p><p>
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
747 Example:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
748 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
749 open_file_cache max=1000 inactive=20s;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
750 open_file_cache_valid 30s;
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
751 open_file_cache_min_uses 2;
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
752 open_file_cache_errors on;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
753 </pre></blockquote></p><hr><a name="open_file_cache_errors"></a><strong>syntax</strong>:
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
754 <code>open_file_cache_errors <code>on</code> | <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
755 <code>open_file_cache_errors off</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
756 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
757 Enables or disables caching of file lookup errors by the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
758 <a href="#open_file_cache">open_file_cache</a>.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
759 </p><hr><a name="open_file_cache_min_uses"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
760 <code>open_file_cache_min_uses <code><i>number</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
761 <code>open_file_cache_min_uses 1</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
762 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
763 Sets the minimum <code><i>number</i></code> of file accesses during
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
764 the period configured by the <code>inactive</code> parameter
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
765 of the <a href="#open_file_cache">open_file_cache</a> directive,
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
766 after which a file descriptor will remain open in the cache.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
767 </p><hr><a name="open_file_cache_valid"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
768 <code>open_file_cache_valid <code><i>time</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
769 <code>open_file_cache_valid 60</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
770 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
771 Sets a time after which
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
772 <a href="#open_file_cache">open_file_cache</a>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
773 elements should be validated.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
774 </p><hr><a name="optimize_server_names"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
775 <code>optimize_server_names <code>on</code> | <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
776 <code>optimize_server_names on</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
777 <code>http</code>, <code>server</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
778 This directive is obsolete.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
779 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
780 Enables or disables optimization of hostname checking in name-based
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
781 virtual servers.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
782 In particular, the checking affects hostnames used in redirects.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
783 If optimization is enabled, and all name-based servers listening on
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
784 the same address:port pair have identical configuration, then
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
785 names are not checked during request processing, and the first
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
786 server name is used in redirects.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
787 In case redirects should use hostnames sent by clients,
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
788 optimization needs to be disabled.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
789 </p><hr><a name="port_in_redirect"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
790 <code>port_in_redirect <code>on</code> | <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
791 <code>port_in_redirect on</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
792 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
793 Enables or disables specifying the port in redirects issued by nginx.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
794 </p><hr><a name="read_ahead"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
795 <code>read_ahead <code><i>size</i></code></code><br><strong>default</strong>:
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
796 <code>read_ahead 0</code><br><strong>context</strong>:
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
797 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
798 Sets the amount of pre-reading when working with files, in the kernel.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
799 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
800 On Linux, the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
801 <code>posix_fadvise(0, 0, 0, POSIX_FADV_SEQUENTIAL)</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
802 system call is used, so the <code><i>size</i></code> argument is ignored.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
803 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
804 On FreeBSD, the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
805 <code>fcntl(O_READAHEAD,</code><code><i>size</i></code><code>)</code>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
806 system call is used, supported in FreeBSD 9.0-CURRENT.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
807 FreeBSD 7 needs to be
4084
b7c944d1a5a8 Regenerate after previous commits.
Ruslan Ermilov <ru@nginx.com>
parents: 4080
diff changeset
808 <a href="http://sysoev.ru/freebsd/patch.readahead.txt">patched</a>.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
809 </p><hr><a name="recursive_error_pages"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
810 <code>recursive_error_pages <code>on</code> | <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
811 <code>recursive_error_pages off</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
812 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
813 Enables or disables doing several redirects using the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
814 <a href="#error_page">error_page</a>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
815 directive.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
816 </p><hr><a name="reset_timedout_connection"></a><strong>syntax</strong>:
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
817 <code>reset_timedout_connection
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
818 <code>on</code> | <code>off</code></code><br><strong>default</strong>:
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
819 <code>reset_timedout_connection off</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
820 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
821 Enables or disables resetting of timed out connections.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
822 The reset is performed as follows: before closing a socket, the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
823 <code>SO_LINGER</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
824 option is set on it with a timeout value of 0.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
825 When the socket is closed, a client is sent TCP RST, and all memory
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
826 occupied by this socket is freed.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
827 This avoids keeping of an already closed socket with filled buffers
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
828 for a long time, in a FIN_WAIT1 state.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
829 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
830 It should be noted that timed out keep-alive connections are still
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
831 closed normally.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
832 </p><hr><a name="resolver"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
833 <code>resolver <code><i>address</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
834 <strong>none</strong><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
835 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
836 Sets the <code><i>address</i></code> of a name server, for example:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
837 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
838 resolver 127.0.0.1;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
839 </pre></blockquote></p><hr><a name="resolver_timeout"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
840 <code>resolver_timeout <code><i>time</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
841 <code>resolver_timeout 30s</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
842 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
843 Sets a timeout for name resolution, for example:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
844 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
845 resolver_timeout 5s;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
846 </pre></blockquote></p><hr><a name="root"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
847 <code>root <code><i>path</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
848 <code>root html</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
849 <code>http</code>, <code>server</code>, <code>location</code>, <code>if in location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
850 Sets the root directory for requests.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
851 For example, with the following configuration
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
852 <blockquote><pre>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
853 location /i/ {
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
854 root /data/w3;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
855 }
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
856 </pre></blockquote>&ldquo;<code>/i/top.gif</code>&rdquo; will be responded
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
857 with the file
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
858 &ldquo;<code>/data/w3/i/top.gif</code>&rdquo;.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
859 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
860 The <code><i>path</i></code> value can contain variables.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
861 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
862 A path to the file is constructed by merely adding a URI to the value
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
863 of the <code>root</code> directive.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
864 If a URI need to be modified, the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
865 <a href="#alias">alias</a> directive should be used.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
866 </p><hr><a name="satisfy"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
867 <code>satisfy <code>all</code> | <code>any</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
868 <code>satisfy all</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
869 <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
870 Allows access if any of the
4109
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
871 <a href="ngx_http_access_module.html">ngx_http_access_module</a>
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
872 or <a href="ngx_http_auth_basic_module.html">ngx_http_auth_basic_module</a>
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
873 modules grant access.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
874 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
875 location / {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
876 satisfy any;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
877
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
878 allow 192.168.1.0/32;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
879 deny all;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
880
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
881 auth_basic "closed site";
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
882 auth_basic_user_file conf/htpasswd;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
883 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
884 </pre></blockquote></p><hr><a name="satisfy_any"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
885 <code>satisfy_any <code>on</code> | <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
886 <code>satisfy_any off</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
887 <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
888 This directive was renamed to the <a href="#satisfy">satisfy</a> directive.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
889 </p><hr><a name="send_timeout"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
890 <code>send_timeout <code><i>time</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
891 <code>send_timeout 60</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
892 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
893 Sets a timeout for transmitting a response to the client.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
894 A timeout is only set between two successive write operations,
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
895 not for the transmission of the whole response.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
896 If a client does not receive anything within this time,
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
897 a connection is closed.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
898 </p><hr><a name="sendfile"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
899 <code>sendfile <code>on</code> | <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
900 <code>sendfile off</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
901 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
902 Enables or disables the use of
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
903 <code>sendfile()</code>.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
904 </p><hr><a name="server"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
905 <code>server { ... }</code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
906 <strong>none</strong><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
907 <code>http</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
908 Sets a configuration for the virtual server.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
909 There is no clean separation between IP-based (based on the IP address)
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
910 and name-based (based on the <code>Host</code> request header field)
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
911 virtual servers.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
912 Instead, the <a href="#listen">listen</a> directives describe all
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
913 addresses and ports that should accept connections for a server, and the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
914 <a href="#server_name">server_name</a> directive lists all server names.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
915 An example configuration is provided in the
4084
b7c944d1a5a8 Regenerate after previous commits.
Ruslan Ermilov <ru@nginx.com>
parents: 4080
diff changeset
916 <a href="../virtual_hosts.html">
b7c944d1a5a8 Regenerate after previous commits.
Ruslan Ermilov <ru@nginx.com>
parents: 4080
diff changeset
917 Setting Up Virtual Servers</a> document.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
918 </p><hr><a name="server_name"></a><strong>syntax</strong>:
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
919 <code>server_name <code><i>name</i></code> ...</code><br><strong>default</strong>:
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
920 <code>server_name hostname</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
921 <code>server</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
922 Sets names of the virtual server, for example:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
923 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
924 server {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
925 server_name example.com www.example.com;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
926 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
927 </pre></blockquote></p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
928 The first name becomes a primary server name.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
929 By default, the machine's hostname is used.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
930 Server names can include an asterisk (&ldquo;<code>*</code>&rdquo;)
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
931 to replace the first or last part of a name:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
932 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
933 server {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
934 server_name example.com *.example.com www.example.*;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
935 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
936 </pre></blockquote></p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
937 The first two of the above mentioned names can be combined:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
938 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
939 server {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
940 server_name .example.com;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
941 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
942 </pre></blockquote></p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
943 It is also possible to use regular expressions in server names,
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
944 prepending the name with a tilde (&ldquo;<code>~</code>&rdquo;):
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
945 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
946 server {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
947 server_name www.example.com ~^www\d+\.example\.com$;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
948 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
949 </pre></blockquote></p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
950 Regular expressions can contain captures (0.7.40) that can later
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
951 be used in other directives:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
952 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
953 server {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
954 server_name ~^(www\.)?(.+)$;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
955
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
956 location / {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
957 root /sites/$2;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
958 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
959 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
960
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
961 server {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
962 server_name _;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
963
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
964 location / {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
965 root /sites/default;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
966 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
967 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
968 </pre></blockquote></p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
969 Starting from version 0.8.25, named captures in regular expressions create
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
970 variables that can later be used in other directives:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
971 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
972 server {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
973 server_name ~^(www\.)?(?&lt;domain&gt;.+)$;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
974
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
975 location / {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
976 root /sites/$domain;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
977 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
978 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
979
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
980 server {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
981 server_name _;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
982
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
983 location / {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
984 root /sites/default;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
985 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
986 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
987 </pre></blockquote></p><p>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
988 Starting from version 0.7.11, it is possible to specify an empty name:
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
989 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
990 server {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
991 server_name www.example.com "";
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
992 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
993 </pre></blockquote>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
994 It allows this server to process requests without the <code>Host</code>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
995 header, instead of the default server for the given address:port pair.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
996 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
997 The name checking order is as follows:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
998 <ol><li>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
999 full names
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1000 </li><li>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1001 names with the prefix mask, e.g. &ldquo;<code>*.example.com</code>&rdquo;</li><li>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1002 names with the suffix mask, e.g. &ldquo;<code>mail.*</code>&rdquo;</li><li>
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1003 regular expressions
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1004 </li></ol></p><hr><a name="server_name_in_redirect"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1005 <code>server_name_in_redirect <code>on</code> | <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1006 <code>server_name_in_redirect on</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1007 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1008 Enables or disables the use of the primary server name, specified by the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1009 <a href="#server_name">server_name</a>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1010 directive, in redirects issued by nginx.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1011 When disabled, the name from the <code>Host</code> request header field
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1012 is used.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1013 If this field is not present, an IP address of the server is used.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1014 </p><hr><a name="server_names_hash_max_size"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1015 <code>server_names_hash_max_size <code><i>size</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1016 <code>server_names_hash_max_size 512</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1017 <code>http</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1018 Sets the maximum <code><i>size</i></code> of the server names hash tables.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1019 For more information, please refer to
4084
b7c944d1a5a8 Regenerate after previous commits.
Ruslan Ermilov <ru@nginx.com>
parents: 4080
diff changeset
1020 <a href="../hash.html">Setting Up Hashes</a>.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1021 </p><hr><a name="server_names_hash_bucket_size"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1022 <code>server_names_hash_bucket_size <code><i>size</i></code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1023 <code>server_names_hash_bucket_size 32/64/128</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1024 <code>http</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1025 Sets the bucket size for the server names hash tables.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1026 Default value depends on the size of the processor's cache line.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1027 For more information, please refer to
4084
b7c944d1a5a8 Regenerate after previous commits.
Ruslan Ermilov <ru@nginx.com>
parents: 4080
diff changeset
1028 <a href="../hash.html">Setting Up Hashes</a>.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1029 </p><hr><a name="server_tokens"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1030 <code>server_tokens <code>on</code> | <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1031 <code>server_tokens on</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1032 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1033 Enables or disables emitting of nginx version in error messages and in the
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1034 <code>Server</code> response header field.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1035 </p><hr><a name="tcp_nodelay"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1036 <code>tcp_nodelay <code>on</code> | <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1037 <code>tcp_nodelay on</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1038 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1039 Enables or disables the use of the <code>TCP_NODELAY</code> option.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1040 The option is enabled only when a connection is transitioned into the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1041 keep-alive state.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1042 </p><hr><a name="tcp_nopush"></a><strong>syntax</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1043 <code>tcp_nopush <code>on</code> | <code>off</code></code><br><strong>default</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1044 <code>tcp_nopush off</code><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1045 <code>http</code>, <code>server</code>, <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1046 Enables or disables the use of
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1047 the <code>TCP_NOPUSH</code> socket option on FreeBSD
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1048 or the <code>TCP_CORK</code> socket option on Linux.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1049 Opitons are enables only when <a href="#sendfile">sendfile</a> is used.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1050 Enabling the option allows to
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1051 <ul><li>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1052 send the response header and the beginning of a file in one packet,
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1053 on Linux and FreeBSD 4.*;
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1054 </li><li>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1055 send a file in full packets.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1056 </li></ul></p><hr><a name="try_files"></a><strong>syntax</strong>:
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1057 <code>try_files
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1058 <code><i>file</i></code> ...
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1059 <code><i>uri</i></code></code><br><code>       </code><code>try_files
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1060 <code><i>file</i></code> ...
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1061 =<code><i>code</i></code></code><br><strong>default</strong>:
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1062 <strong>none</strong><br><strong>context</strong>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1063 <code>location</code><br><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1064 Checks the existence of files in the specified order, and uses
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1065 the first found file for request processing; the processing
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1066 is performed in this location's context.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1067 It is possible to check the directory existence by specifying
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1068 the slash at the end of a name, e.g. &ldquo;<code>$uri/</code>&rdquo;.
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1069 If none of the files were found, an internal redirect to the
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1070 <code><i>uri</i></code> specified by the last argument is made.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1071 As of version 0.7.51, the last argument can also be a
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1072 <code><i>code</i></code>:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1073 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1074 location / {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1075 try_files $uri $uri/index.html $uri.html =404;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1076 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1077 </pre></blockquote></p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1078 Example when proxying Mongrel:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1079 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1080 location / {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1081 try_files /system/maintenance.html
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1082 $uri $uri/index.html $uri.html
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1083 @mongrel;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1084 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1085
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1086 location @mongrel {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1087 proxy_pass http://mongrel;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1088 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1089 </pre></blockquote></p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1090 Example for Drupal/FastCGI:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1091 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1092 location / {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1093 try_files $uri $uri/ @drupal;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1094 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1095
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1096 location ~ \.php$ {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1097 try_files $uri @drupal;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1098
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1099 fastcgi_pass ...;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1100
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1101 fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1102 fastcgi_param SCRIPT_NAME $fastcgi_script_name;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1103 fastcgi_param QUERY_STRING $args;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1104
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1105 ... other fastcgi_param's
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1106 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1107
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1108 location @drupal {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1109 fastcgi_pass ...;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1110
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1111 fastcgi_param SCRIPT_FILENAME /path/to/index.php;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1112 fastcgi_param SCRIPT_NAME /index.php;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1113 fastcgi_param QUERY_STRING q=$uri&amp;$args;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1114
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1115 ... other fastcgi_param's
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1116 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1117 </pre></blockquote>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1118 In the following example,
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1119 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1120 location / {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1121 try_files $uri $uri/ @drupal;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1122 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1123 </pre></blockquote>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1124 the <code>try_files</code> directive is equivalent to
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1125 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1126 location / {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1127 error_page 404 = @drupal;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1128 log_not_found off;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1129 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1130 </pre></blockquote>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1131 And here,
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1132 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1133 location ~ \.php$ {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1134 try_files $uri @drupal;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1135
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1136 fastcgi_pass ...;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1137
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1138 fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1139
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1140 ...
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1141 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1142 </pre></blockquote><code>try_files</code> checks the existence of the PHP file
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1143 before passing the request to the FastCGI server.
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1144 </p><p>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1145 Example for Wordpress and Joomla:
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1146 <blockquote><pre>
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1147 location / {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1148 try_files $uri $uri/ @wordpress;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1149 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1150
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1151 location ~ \.php$ {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1152 try_files $uri @wordpress;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1153
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1154 fastcgi_pass ...;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1155
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1156 fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1157 ... other fastcgi_param's
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1158 }
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1159
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1160 location @wordpress {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1161 fastcgi_pass ...;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1162
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1163 fastcgi_param SCRIPT_FILENAME /path/to/index.php;
4069
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1164 ... other fastcgi_param's
4dbdfd985863 Regenerate HTML for the previous revision.
Ruslan Ermilov <ru@nginx.com>
parents: 3996
diff changeset
1165 }
4071
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1166 </pre></blockquote></p><hr><a name="types"></a><strong>syntax</strong>:
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1167 <code>types { ... }</code><br><strong>default</strong>:
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1168 <code>see below</code><br><strong>context</strong>:
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1169 <code>http</code>, <code>server</code>, <code>location</code><br><p>
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1170 Maps file name extensions to MIME types of responses.
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1171 Several extensions can map to one type.
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1172 The following mappings are configured by default:
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1173 <blockquote><pre>
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1174 types {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1175 text/html html;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1176 image/gif gif;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1177 image/jpeg jpg;
4071
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1178 }
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1179 </pre></blockquote></p><p>
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1180 A sufficiently full mapping table is distributed with nginx in the
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1181 <code>conf/mime.types</code> file.
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1182 </p><p>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1183 To make a particular location emit the
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1184 &ldquo;<code>application/octet-stream</code>&rdquo;
4071
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1185 MIME type for all requests, try the following:
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1186 <blockquote><pre>
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1187 location /download/ {
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1188 types { }
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1189 default_type application/octet-stream;
4071
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1190 }
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1191 </pre></blockquote></p><hr><a name="underscores_in_headers"></a><strong>syntax</strong>:
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1192 <code>underscores_in_headers <code>on</code> | <code>off</code></code><br><strong>default</strong>:
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1193 <code>underscores_in_headers off</code><br><strong>context</strong>:
cf09c4826ab3 Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4069
diff changeset
1194 <code>http</code>, <code>server</code><br><p>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1195 Enables or disables the use of underscores in client request header fields.
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1196 </p><a name="variables"></a><center><h4>Embedded Variables</h4></center><p>
4109
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
1197 The module <code>ngx_http_core_module</code> supports embedded variables with
dc1fa52222b4 Regenerated after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4084
diff changeset
1198 names matching those of the Apache Server.
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1199 First of all, these are variables representing client request header
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1200 fields, such as, <code>$http_user_agent</code>, <code>$http_cookie</code>,
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1201 and so on.
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1202 It also supports other variables:
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1203 <dl compact><dt><code>$args</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1204 arguments in the request line
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1205 </dd><dt><code>$arg_</code><code><i>name</i></code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1206 argument <code><i>name</i></code> in the request line
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1207 </dd><dt><code>$binary_remote_addr</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1208 client address in a binary form, value's length is always 4 bytes
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1209 </dd><dt><code>$content_length</code></dt><dd><code>Content-Length</code> request header field
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1210 </dd><dt><code>$content_type</code></dt><dd><code>Content-Type</code> request header field
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1211 </dd><dt><code>$cookie_</code><code><i>name</i></code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1212 the <code><i>name</i></code> cookie
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1213 </dd><dt><code>$document_root</code></dt><dd><a href="#root">root</a> directive's value for the current request
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1214 </dd><dt><code>$document_uri</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1215 same as <code>$uri</code></dd><dt><code>$host</code></dt><dd><code>Host</code> request header field,
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1216 or the server name matching a request if this field is not present
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1217 </dd><dt><code>$hostname</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1218 host name
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1219 </dd><dt><code>$http_</code><code><i>name</i></code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1220 the <code><i>name</i></code> request header field
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1221 </dd><dt><code>$is_args</code></dt><dd>&ldquo;<code>?</code>&rdquo; if a request line has arguments,
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1222 or an empty string otherwise
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1223 </dd><dt><code>$limit_rate</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1224 allows for connection rate limiting
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1225 </dd><dt><code>$pid</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1226 PID of the worker process
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1227 </dd><dt><code>$request_method</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1228 request method, usually
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1229 &ldquo;<code>GET</code>&rdquo; or &ldquo;<code>POST</code>&rdquo;</dd><dt><code>$remote_addr</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1230 client address
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1231 </dd><dt><code>$remote_port</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1232 client port
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1233 </dd><dt><code>$remote_user</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1234 user name supplied with the Basic authentication
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1235 </dd><dt><code>$realpath_root</code></dt><dd><a href="#root">root</a> directive's value
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1236 for the current request, with all symbolic links resolved to real paths
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1237 </dd><dt><code>$request_filename</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1238 file path for the current query, based on the
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1239 <a href="#root">root</a> and <a href="#alias">alias</a>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1240 directives, and the request URI
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1241 </dd><dt><code>$request_body</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1242 request body
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1243 <p>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1244 The variable's value is made available in locations
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1245 processed by the
4084
b7c944d1a5a8 Regenerate after previous commits.
Ruslan Ermilov <ru@nginx.com>
parents: 4080
diff changeset
1246 <a href="ngx_http_proxy_module.html#proxy_pass">proxy_pass</a>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1247 and
4084
b7c944d1a5a8 Regenerate after previous commits.
Ruslan Ermilov <ru@nginx.com>
parents: 4080
diff changeset
1248 <a href="ngx_http_fastcgi_module.html#fastcgi_pass">fastcgi_pass</a>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1249 directives.
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1250 </p></dd><dt><code>$request_body_file</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1251 name of a temporary file with the request body
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1252 <p>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1253 At the end of processing, the file needs to be removed.
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1254 To always write a request body to a file,
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1255 <a href="#client_body_in_file_only">client_body_in_file_only on</a>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1256 needs be specified.
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1257 When passing the name of a temporary file in a proxied request,
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1258 or in a request to a FastCGI server,
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1259 passing of the request body should be disabled by the
4084
b7c944d1a5a8 Regenerate after previous commits.
Ruslan Ermilov <ru@nginx.com>
parents: 4080
diff changeset
1260 <a href="ngx_http_proxy_module.html#proxy_pass_request_body">proxy_pass_request_body</a>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1261 and
4084
b7c944d1a5a8 Regenerate after previous commits.
Ruslan Ermilov <ru@nginx.com>
parents: 4080
diff changeset
1262 <a href="ngx_http_fastcgi_module.html#fastcgi_pass_request_body">fastcgi_pass_request_body</a>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1263 directives, respectively.
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1264 </p></dd><dt><code>$request_uri</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1265 full original request URI (with arguments)
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1266 </dd><dt><code>$query_string</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1267 same as <code>$args</code></dd><dt><code>$scheme</code></dt><dd>
4084
b7c944d1a5a8 Regenerate after previous commits.
Ruslan Ermilov <ru@nginx.com>
parents: 4080
diff changeset
1268 request scheme, &ldquo;<code>http</code>&rdquo; or &ldquo;<code>https</code>&rdquo;</dd><dt><code>$server_protocol</code></dt><dd>
4080
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1269 request protocol, usually
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1270 &ldquo;<code>HTTP/1.0</code>&rdquo;
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1271 or
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1272 &ldquo;<code>HTTP/1.1</code>&rdquo;</dd><dt><code>$server_addr</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1273 an address of the server which accepted a request
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1274 <p>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1275 Computing a value of this variable usually requires one system call.
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1276 To avoid a system call, the <code>listen</code> directives
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1277 must specify addresses and use the <code>bind</code> parameter
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1278 </p></dd><dt><code>$server_name</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1279 name of the server which accepted a request
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1280 </dd><dt><code>$server_port</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1281 port of the server which accepted a request
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1282 </dd><dt><code>$uri</code></dt><dd>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1283 current URI in request
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1284 <p>
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1285 It may differ from an original, e.g. when doing internal redirects,
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1286 or when using index files.
a1e1b348bfaf Regenerate after previous commit.
Ruslan Ermilov <ru@nginx.com>
parents: 4071
diff changeset
1287 </p></dd></dl></p></body></html>