Mercurial > hg > nginx-site
comparison xml/ru/docs/http/ngx_http_core_module.xml @ 617:368a449e85b8
Expanded documentation of what various parameters of the "listen"
directive related to socket options do. While here, documented
the fact that accept filters also work on NetBSD.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Thu, 02 Aug 2012 13:24:07 +0000 |
parents | f3ef5b77d22a |
children | af3f38e349eb |
comparison
equal
deleted
inserted
replaced
616:2fdd929c830e | 617:368a449e85b8 |
---|---|
1132 </note> | 1132 </note> |
1133 </para> | 1133 </para> |
1134 | 1134 |
1135 <para> | 1135 <para> |
1136 В директиве <literal>listen</literal> можно также указать несколько | 1136 В директиве <literal>listen</literal> можно также указать несколько |
1137 дополнительных параметров, специфичных для системных вызовов | 1137 дополнительных параметров, специфичных для связанных с сокетами |
1138 <c-func>listen</c-func> и <c-func>bind</c-func>. | 1138 системных вызовов. |
1139 Эти параметры можно задать в любой директиве <literal>listen</literal>, | 1139 Эти параметры можно задать в любой директиве <literal>listen</literal>, |
1140 но только один раз для указанной пары | 1140 но только один раз для указанной пары |
1141 <value>адрес</value>:<value>порт</value>. | 1141 <value>адрес</value>:<value>порт</value>. |
1142 <note> | 1142 <note> |
1143 До версии 0.8.21 их можно было указывать лишь в директиве | 1143 До версии 0.8.21 их можно было указывать лишь в директиве |
1144 <literal>listen</literal> с параметром <literal>default</literal>. | 1144 <literal>listen</literal> совместно с параметром <literal>default</literal>. |
1145 </note> | 1145 </note> |
1146 <list type="tag"> | 1146 <list type="tag"> |
1147 | 1147 |
1148 <tag-name> | 1148 <tag-name> |
1149 <literal>setfib</literal>=<value>число</value> | 1149 <literal>setfib</literal>=<value>число</value> |
1150 </tag-name> | 1150 </tag-name> |
1151 <tag-desc> | 1151 <tag-desc> |
1152 этот параметр (0.8.44) задаёт для слушающего сокета соответствующую | 1152 этот параметр (0.8.44) задаёт таблицу маршрутизации, FIB |
1153 таблицу маршрутизации (FIB). | 1153 (параметр <c-def>SO_SETFIB</c-def>) для слушающего сокета. |
1154 В настоящий момент это работает только на FreeBSD. | 1154 В настоящий момент это работает только на FreeBSD. |
1155 </tag-desc> | 1155 </tag-desc> |
1156 | 1156 |
1157 <tag-name> | 1157 <tag-name> |
1158 <literal>backlog</literal>=<value>число</value> | 1158 <literal>backlog</literal>=<value>число</value> |
1159 </tag-name> | 1159 </tag-name> |
1160 <tag-desc> | 1160 <tag-desc> |
1161 задаёт параметр <literal>backlog</literal> в вызове | 1161 задаёт параметр <literal>backlog</literal> в вызове |
1162 <c-func>listen</c-func>. | 1162 <c-func>listen</c-func>, который ограничивает |
1163 По умолчанию <literal>backlog</literal> равен -1 для FreeBSD | 1163 максимальный размер очереди ожидающих приёма соединений. |
1164 По умолчанию <literal>backlog</literal> устанавливается равным -1 для FreeBSD | |
1164 и 511 для других платформ. | 1165 и 511 для других платформ. |
1165 </tag-desc> | 1166 </tag-desc> |
1166 | 1167 |
1167 <tag-name> | 1168 <tag-name> |
1168 <literal>rcvbuf</literal>=<value>размер</value> | 1169 <literal>rcvbuf</literal>=<value>размер</value> |
1169 </tag-name> | 1170 </tag-name> |
1170 <tag-desc> | 1171 <tag-desc> |
1171 задаёт параметр <c-def>SO_RCVBUF</c-def> для слушающего сокета | 1172 задаёт размер буфера приёма |
1173 (параметр <c-def>SO_RCVBUF</c-def>) для слушающего сокета. | |
1172 </tag-desc> | 1174 </tag-desc> |
1173 | 1175 |
1174 <tag-name> | 1176 <tag-name> |
1175 <literal>sndbuf</literal>=<value>размер</value> | 1177 <literal>sndbuf</literal>=<value>размер</value> |
1176 </tag-name> | 1178 </tag-name> |
1177 <tag-desc> | 1179 <tag-desc> |
1178 задаёт параметр <c-def>SO_SNDBUF</c-def> для слушающего сокета | 1180 задаёт размер буфера передачи |
1181 (параметр <c-def>SO_SNDBUF</c-def>) для слушающего сокета. | |
1179 </tag-desc> | 1182 </tag-desc> |
1180 | 1183 |
1181 <tag-name> | 1184 <tag-name> |
1182 <literal>accept_filter</literal>=<value>фильтр</value> | 1185 <literal>accept_filter</literal>=<value>фильтр</value> |
1183 </tag-name> | 1186 </tag-name> |
1184 <tag-desc> | 1187 <tag-desc> |
1185 задаёт название accept-фильтра. | 1188 задаёт название accept-фильтра |
1186 Работает только на FreeBSD, можно использовать два фильтра — | 1189 (параметр <c-def>SO_ACCEPTFILTER</c-def>) для слушающего сокета, |
1187 <literal>dataready</literal> и <literal>httpready</literal>. | 1190 который включается для фильтрации входящих соединений |
1188 По сигналу <c-def>SIGHUP</c-def> accept-фильтр можно менять только в | 1191 перед передачей их в <c-func>accept</c-func>. |
1189 последних версиях FreeBSD, начиная с 6.0, 5.4-STABLE и 4.11-STABLE. | 1192 Работает только на FreeBSD и NetBSD 5.0+. |
1193 Можно использовать два фильтра — | |
1194 <link url="http://man.freebsd.org/accf_data">dataready</link> | |
1195 и | |
1196 <link url="http://man.freebsd.org/accf_http">httpready</link>. | |
1190 </tag-desc> | 1197 </tag-desc> |
1191 | 1198 |
1192 <tag-name> | 1199 <tag-name> |
1193 <literal>deferred</literal> | 1200 <literal>deferred</literal> |
1194 </tag-name> | 1201 </tag-name> |
1195 <tag-desc> | 1202 <tag-desc> |
1196 указывает использовать отложенный <c-func>accept</c-func> на Linux | 1203 указывает использовать отложенный <c-func>accept</c-func> |
1197 с помощью опции <c-def>TCP_DEFER_ACCEPT</c-def>. | 1204 (параметр <c-def>TCP_DEFER_ACCEPT</c-def> сокета) на Linux. |
1198 </tag-desc> | 1205 </tag-desc> |
1199 | 1206 |
1200 <tag-name> | 1207 <tag-name> |
1201 <literal>bind</literal> | 1208 <literal>bind</literal> |
1202 </tag-name> | 1209 </tag-name> |
1221 | 1228 |
1222 <tag-name> | 1229 <tag-name> |
1223 <literal>ipv6only</literal>=<literal>on</literal>|<literal>off</literal> | 1230 <literal>ipv6only</literal>=<literal>on</literal>|<literal>off</literal> |
1224 </tag-name> | 1231 </tag-name> |
1225 <tag-desc> | 1232 <tag-desc> |
1226 параметр (0.7.42) задаёт значение параметра <c-def>IPV6_V6ONLY</c-def> | 1233 этот параметр (0.7.42) определяет |
1227 для слушающего сокета. | 1234 (через параметр сокета <c-def>IPV6_V6ONLY</c-def>), |
1235 будет ли слушающий на wildcard-адресе <literal>[::]</literal> IPv6-сокет | |
1236 принимать только IPv6-соединения, или же одновременно IPv6- и IPv4-соединения. | |
1228 По умолчанию параметр включён. | 1237 По умолчанию параметр включён. |
1229 Установить этот параметр можно только один раз на старте. | 1238 Установить его можно только один раз на старте. |
1230 <note> | 1239 <note> |
1231 До версии 1.3.4, если параметр не был задан явно, использовались | 1240 До версии 1.3.4, |
1241 если этот параметр не был задан явно, то для сокета действовали | |
1232 настройки операционной системы. | 1242 настройки операционной системы. |
1233 </note> | 1243 </note> |
1234 </tag-desc> | 1244 </tag-desc> |
1235 | 1245 |
1236 <tag-name> | 1246 <tag-name> |
1237 <literal>ssl</literal> | 1247 <literal>ssl</literal> |
1238 </tag-name> | 1248 </tag-name> |
1239 <tag-desc> | 1249 <tag-desc> |
1240 этот параметр (0.7.14) не имеет отношения к системным вызовам | 1250 этот параметр (0.7.14) не имеет отношения к связанным с сокетами системным |
1241 <c-func>listen</c-func> и <c-func>bind</c-func>, а позволяет указать, | 1251 вызовам, а позволяет указать, что все соединения, принимаемые на этом порту, |
1242 что все соединения, принимаемые на этом порту, должны работать | 1252 должны работать в режиме SSL. |
1243 в режиме SSL. | 1253 Это позволяет задать компактную <link doc="configuring_https_servers.xml" |
1244 Это позволяет задать компактную конфигурацию для сервера, | 1254 id="single_http_https_server">конфигурацию</link> для сервера, |
1245 работающего сразу в двух режимах — HTTP и HTTPS. | 1255 работающего сразу в двух режимах — HTTP и HTTPS. |
1246 <example> | |
1247 listen 80; | |
1248 listen 443 ssl; | |
1249 </example> | |
1250 </tag-desc> | 1256 </tag-desc> |
1251 | 1257 |
1252 <tag-name> | 1258 <tag-name> |
1253 <literal>so_keepalive</literal>=<literal>on</literal>|<literal>off</literal>|[<value>keepidle</value>]:[<value>keepintvl</value>]:[<value>keepcnt</value>] | 1259 <literal>so_keepalive</literal>=<literal>on</literal>|<literal>off</literal>|[<value>keepidle</value>]:[<value>keepintvl</value>]:[<value>keepcnt</value>] |
1254 </tag-name> | 1260 </tag-name> |
1255 <tag-desc> | 1261 <tag-desc> |
1256 этот параметр (1.1.11) конфигурирует для слушающего сокета | 1262 этот параметр (1.1.11) конфигурирует для слушающего сокета |
1257 поведение “TCP keepalive”. | 1263 поведение “TCP keepalive”. |
1258 Если этот параметр опущен, то для сокета будут действовать | 1264 Если этот параметр опущен, то для сокета будут действовать |
1259 стандартные системные настройки. | 1265 настройки операционной системы. |
1260 Если он установлен в значение “<literal>on</literal>”, то для сокета | 1266 Если он установлен в значение “<literal>on</literal>”, то для сокета |
1261 включается опция <c-def>SO_KEEPALIVE</c-def>. | 1267 включается параметр <c-def>SO_KEEPALIVE</c-def>. |
1262 Если он установлен в значение “<literal>off</literal>”, то для сокета | 1268 Если он установлен в значение “<literal>off</literal>”, то для сокета |
1263 опция <c-def>SO_KEEPALIVE</c-def> выключается. | 1269 параметр <c-def>SO_KEEPALIVE</c-def> выключается. |
1264 Некоторые операционные системы поддерживают настройку параметров | 1270 Некоторые операционные системы поддерживают настройку параметров |
1265 “TCP keepalive” на уровне сокета посредством опций | 1271 “TCP keepalive” на уровне сокета посредством параметров |
1266 <c-def>TCP_KEEPIDLE</c-def>, <c-def>TCP_KEEPINTVL</c-def> и | 1272 <c-def>TCP_KEEPIDLE</c-def>, <c-def>TCP_KEEPINTVL</c-def> и |
1267 <c-def>TCP_KEEPCNT</c-def>. | 1273 <c-def>TCP_KEEPCNT</c-def>. |
1268 На таких системах (в настоящий момент это Linux 2.4+, NetBSD 5+ и | 1274 На таких системах (в настоящий момент это Linux 2.4+, NetBSD 5+ и |
1269 FreeBSD 9.0-STABLE) | 1275 FreeBSD 9.0-STABLE) |
1270 их можно сконфигурировать с помощью параметров <value>keepidle</value>, | 1276 их можно сконфигурировать с помощью параметров <value>keepidle</value>, |
1271 <value>keepintvl</value> и <value>keepcnt</value>. | 1277 <value>keepintvl</value> и <value>keepcnt</value>. |
1272 Один или два параметра могут быть опущены, в таком случае для | 1278 Один или два параметра могут быть опущены, в таком случае для |
1273 соответствующей опции сокета будут действовать стандартные | 1279 соответствующего параметра сокета будут действовать стандартные |
1274 системные настройки. | 1280 системные настройки. |
1275 Например, | 1281 Например, |
1276 <example>so_keepalive=30m::10</example> | 1282 <example>so_keepalive=30m::10</example> |
1277 установит таймаут бездействия (<c-def>TCP_KEEPIDLE</c-def>) в 30 минут, | 1283 установит таймаут бездействия (<c-def>TCP_KEEPIDLE</c-def>) в 30 минут, |
1278 для интервала проб (<c-def>TCP_KEEPINTVL</c-def>) будет действовать | 1284 для интервала проб (<c-def>TCP_KEEPINTVL</c-def>) будет действовать |
1284 </para> | 1290 </para> |
1285 | 1291 |
1286 <para> | 1292 <para> |
1287 Пример: | 1293 Пример: |
1288 <example> | 1294 <example> |
1289 listen 127.0.0.1 default accept_filter=dataready backlog=1024; | 1295 listen 127.0.0.1 default_server accept_filter=dataready backlog=1024; |
1290 </example> | 1296 </example> |
1291 </para> | 1297 </para> |
1292 | 1298 |
1293 </directive> | 1299 </directive> |
1294 | 1300 |
1827 <context>location</context> | 1833 <context>location</context> |
1828 | 1834 |
1829 <para> | 1835 <para> |
1830 Разрешает или запрещает сброс соединений по таймауту. | 1836 Разрешает или запрещает сброс соединений по таймауту. |
1831 Сброс делается следующим образом — перед закрытием сокета для него | 1837 Сброс делается следующим образом — перед закрытием сокета для него |
1832 ставится опция | 1838 ставится параметр |
1833 <c-def>SO_LINGER</c-def> | 1839 <c-def>SO_LINGER</c-def> |
1834 с таймаутом 0. | 1840 с таймаутом 0. |
1835 После чего при закрытии сокета клиенту отсылается TCP RST, а вся память, | 1841 После чего при закрытии сокета клиенту отсылается TCP RST, а вся память, |
1836 связанная с этим сокетом, освобождается. | 1842 связанная с этим сокетом, освобождается. |
1837 Это позволяет избежать длительного нахождения уже закрытого сокета в | 1843 Это позволяет избежать длительного нахождения уже закрытого сокета в |
1995 <para> | 2001 <para> |
1996 При установке в ненулевое значение nginx будет пытаться минимизировать | 2002 При установке в ненулевое значение nginx будет пытаться минимизировать |
1997 число операций отправки на клиентских сокетах либо при помощи флага | 2003 число операций отправки на клиентских сокетах либо при помощи флага |
1998 <c-def>NOTE_LOWAT</c-def> метода | 2004 <c-def>NOTE_LOWAT</c-def> метода |
1999 <link doc="../events.xml" id="kqueue"/>, | 2005 <link doc="../events.xml" id="kqueue"/>, |
2000 либо при помощи опции сокета <c-def>SO_SNDLOWAT</c-def>, | 2006 либо при помощи параметра сокета <c-def>SO_SNDLOWAT</c-def>, |
2001 с указанным размером. | 2007 с указанным размером. |
2002 </para> | 2008 </para> |
2003 | 2009 |
2004 <para> | 2010 <para> |
2005 Эта директива игнорируется на Linux, Solaris и Windows. | 2011 Эта директива игнорируется на Linux, Solaris и Windows. |
2293 <context>http</context> | 2299 <context>http</context> |
2294 <context>server</context> | 2300 <context>server</context> |
2295 <context>location</context> | 2301 <context>location</context> |
2296 | 2302 |
2297 <para> | 2303 <para> |
2298 Разрешает или запрещает использование опции <c-def>TCP_NODELAY</c-def>. | 2304 Разрешает или запрещает использование параметра <c-def>TCP_NODELAY</c-def>. |
2299 Опция включаются только при переходе соединения в состояние keep-alive. | 2305 Параметр включаются только при переходе соединения в состояние keep-alive. |
2300 </para> | 2306 </para> |
2301 | 2307 |
2302 </directive> | 2308 </directive> |
2303 | 2309 |
2304 | 2310 |
2308 <context>http</context> | 2314 <context>http</context> |
2309 <context>server</context> | 2315 <context>server</context> |
2310 <context>location</context> | 2316 <context>location</context> |
2311 | 2317 |
2312 <para> | 2318 <para> |
2313 Разрешает или запрещает использование опции сокета | 2319 Разрешает или запрещает использование параметра сокета |
2314 <c-def>TCP_NOPUSH</c-def> во FreeBSD или | 2320 <c-def>TCP_NOPUSH</c-def> во FreeBSD или |
2315 <c-def>TCP_CORK</c-def> в Linux. | 2321 <c-def>TCP_CORK</c-def> в Linux. |
2316 Опции включаются только при использовании <link id="sendfile"/>. | 2322 Параметр включаются только при использовании <link id="sendfile"/>. |
2317 Включение опции позволяет | 2323 Включение параметра позволяет |
2318 <list type="bullet"> | 2324 <list type="bullet"> |
2319 | 2325 |
2320 <listitem> | 2326 <listitem> |
2321 передавать заголовок ответа и начало файла в одном пакете | 2327 передавать заголовок ответа и начало файла в одном пакете |
2322 в Linux и во FreeBSD 4.*; | 2328 в Linux и во FreeBSD 4.*; |
2843 <var>$tcpinfo_snd_cwnd</var>, | 2849 <var>$tcpinfo_snd_cwnd</var>, |
2844 <var>$tcpinfo_rcv_space</var> | 2850 <var>$tcpinfo_rcv_space</var> |
2845 </tag-name> | 2851 </tag-name> |
2846 <tag-desc> | 2852 <tag-desc> |
2847 информация о клиентском TCP-соединении; доступна на системах, | 2853 информация о клиентском TCP-соединении; доступна на системах, |
2848 поддерживающих опцию сокета <c-def>TCP_INFO</c-def> | 2854 поддерживающих параметр сокета <c-def>TCP_INFO</c-def> |
2849 </tag-desc> | 2855 </tag-desc> |
2850 | 2856 |
2851 <tag-name><var>$uri</var></tag-name> | 2857 <tag-name><var>$uri</var></tag-name> |
2852 <tag-desc> | 2858 <tag-desc> |
2853 текущий URI запроса в <link id="location">нормализованном</link> виде | 2859 текущий URI запроса в <link id="location">нормализованном</link> виде |