update doc

This commit is contained in:
benoitc 2012-06-24 14:24:45 +02:00
parent 1edaef88dc
commit 5ec16e6d0a
8 changed files with 218 additions and 190 deletions

View File

@ -225,6 +225,17 @@ you're sure of the repercussions for sync workers. For the non sync
workers it just means that the worker process is still communicating and workers it just means that the worker process is still communicating and
is not tied to the length of time required to handle a single request.</p> is not tied to the length of time required to handle a single request.</p>
</div> </div>
<div class="section" id="graceful-timeout">
<h4><a class="toc-backref" href="#contents">graceful_timeout</a></h4>
<ul class="simple">
<li><tt class="docutils literal"><span class="pre">--graceful-timeout</span> INT</tt></li>
<li><tt class="docutils literal">30</tt></li>
</ul>
<p>Timeout for graceful workers restart.</p>
<p>Generally set to thirty seconds. How max time worker can handle
request after got restart signal. If the time is up worker will
be force killed.</p>
</div>
<div class="section" id="keepalive"> <div class="section" id="keepalive">
<h4><a class="toc-backref" href="#contents">keepalive</a></h4> <h4><a class="toc-backref" href="#contents">keepalive</a></h4>
<ul class="simple"> <ul class="simple">
@ -250,8 +261,8 @@ method, URI, and protocol version, this directive places a
restriction on the length of a request-URI allowed for a request restriction on the length of a request-URI allowed for a request
on the server. A server needs this value to be large enough to on the server. A server needs this value to be large enough to
hold any of its resource names, including any information that hold any of its resource names, including any information that
might be passed in the query part of a GET request. By default might be passed in the query part of a GET request. Value is a number
this value is 4094 and can't be larger than 8190.</p> from 0 (unlimited) to 8190.</p>
<p>This parameter can be used to prevent any DDOS attack.</p> <p>This parameter can be used to prevent any DDOS attack.</p>
</div> </div>
<div class="section" id="limit-request-fields"> <div class="section" id="limit-request-fields">
@ -261,10 +272,10 @@ this value is 4094 and can't be larger than 8190.</p>
<li><tt class="docutils literal">100</tt></li> <li><tt class="docutils literal">100</tt></li>
</ul> </ul>
<p>Limit the number of HTTP headers fields in a request.</p> <p>Limit the number of HTTP headers fields in a request.</p>
<p>Value is a number from 0 (unlimited) to 32768. This parameter is <p>This parameter is used to limit the number of headers in a request to
used to limit the number of headers in a request to prevent DDOS prevent DDOS attack. Used with the <cite>limit_request_field_size</cite> it allows
attack. Used with the <cite>limit_request_field_size</cite> it allows more more safety. By default this value is 100 and can't be larger than
safety.</p> 32768.</p>
</div> </div>
<div class="section" id="limit-request-field-size"> <div class="section" id="limit-request-field-size">
<h4><a class="toc-backref" href="#contents">limit_request_field_size</a></h4> <h4><a class="toc-backref" href="#contents">limit_request_field_size</a></h4>
@ -344,7 +355,7 @@ background.</p>
<h4><a class="toc-backref" href="#contents">user</a></h4> <h4><a class="toc-backref" href="#contents">user</a></h4>
<ul class="simple"> <ul class="simple">
<li><tt class="docutils literal"><span class="pre">-u</span> USER, <span class="pre">--user</span> USER</tt></li> <li><tt class="docutils literal"><span class="pre">-u</span> USER, <span class="pre">--user</span> USER</tt></li>
<li><tt class="docutils literal">501</tt></li> <li><tt class="docutils literal">1000</tt></li>
</ul> </ul>
<p>Switch worker processes to run as this user.</p> <p>Switch worker processes to run as this user.</p>
<p>A valid user id (as an integer) or the name of a user that can be <p>A valid user id (as an integer) or the name of a user that can be
@ -355,7 +366,7 @@ the worker process user.</p>
<h4><a class="toc-backref" href="#contents">group</a></h4> <h4><a class="toc-backref" href="#contents">group</a></h4>
<ul class="simple"> <ul class="simple">
<li><tt class="docutils literal"><span class="pre">-g</span> GROUP, <span class="pre">--group</span> GROUP</tt></li> <li><tt class="docutils literal"><span class="pre">-g</span> GROUP, <span class="pre">--group</span> GROUP</tt></li>
<li><tt class="docutils literal">20</tt></li> <li><tt class="docutils literal">1000</tt></li>
</ul> </ul>
<p>Switch worker process to run as this group.</p> <p>Switch worker process to run as this group.</p>
<p>A valid group id (as an integer) or the name of a user that can be <p>A valid group id (as an integer) or the name of a user that can be
@ -419,7 +430,7 @@ address of the client connection to gunicorn via a proxy.</p>
<li><tt class="docutils literal">None</tt></li> <li><tt class="docutils literal">None</tt></li>
</ul> </ul>
<p>The Access log file to write to.</p> <p>The Access log file to write to.</p>
<p>&quot;-&quot; means log to stdout.</p> <p>&quot;-&quot; means log to stderr.</p>
</div> </div>
<div class="section" id="access-log-format"> <div class="section" id="access-log-format">
<h4><a class="toc-backref" href="#contents">access_log_format</a></h4> <h4><a class="toc-backref" href="#contents">access_log_format</a></h4>
@ -452,7 +463,7 @@ p: process ID
<li><tt class="docutils literal">-</tt></li> <li><tt class="docutils literal">-</tt></li>
</ul> </ul>
<p>The Error log file to write to.</p> <p>The Error log file to write to.</p>
<p>&quot;-&quot; means log to stdout.</p> <p>&quot;-&quot; means log to stderr.</p>
</div> </div>
<div class="section" id="loglevel"> <div class="section" id="loglevel">
<h4><a class="toc-backref" href="#contents">loglevel</a></h4> <h4><a class="toc-backref" href="#contents">loglevel</a></h4>
@ -560,8 +571,7 @@ def on_starting(server):
<ul> <ul>
<li><pre class="first literal-block"> <li><pre class="first literal-block">
def on_reload(server): def on_reload(server):
for i in range(server.app.cfg.workers): pass
server.spawn_worker()
</pre> </pre>
</li> </li>
</ul> </ul>
@ -688,62 +698,63 @@ the just-exited Worker.</p>
<li><a class="reference internal" href="#worker-connections" id="id15">worker_connections</a></li> <li><a class="reference internal" href="#worker-connections" id="id15">worker_connections</a></li>
<li><a class="reference internal" href="#max-requests" id="id16">max_requests</a></li> <li><a class="reference internal" href="#max-requests" id="id16">max_requests</a></li>
<li><a class="reference internal" href="#timeout" id="id17">timeout</a></li> <li><a class="reference internal" href="#timeout" id="id17">timeout</a></li>
<li><a class="reference internal" href="#keepalive" id="id18">keepalive</a></li> <li><a class="reference internal" href="#graceful-timeout" id="id18">graceful_timeout</a></li>
<li><a class="reference internal" href="#keepalive" id="id19">keepalive</a></li>
</ul> </ul>
</li> </li>
<li><a class="reference internal" href="#security" id="id19">Security</a><ul> <li><a class="reference internal" href="#security" id="id20">Security</a><ul>
<li><a class="reference internal" href="#limit-request-line" id="id20">limit_request_line</a></li> <li><a class="reference internal" href="#limit-request-line" id="id21">limit_request_line</a></li>
<li><a class="reference internal" href="#limit-request-fields" id="id21">limit_request_fields</a></li> <li><a class="reference internal" href="#limit-request-fields" id="id22">limit_request_fields</a></li>
<li><a class="reference internal" href="#limit-request-field-size" id="id22">limit_request_field_size</a></li> <li><a class="reference internal" href="#limit-request-field-size" id="id23">limit_request_field_size</a></li>
</ul> </ul>
</li> </li>
<li><a class="reference internal" href="#debugging" id="id23">Debugging</a><ul> <li><a class="reference internal" href="#debugging" id="id24">Debugging</a><ul>
<li><a class="reference internal" href="#debug" id="id24">debug</a></li> <li><a class="reference internal" href="#debug" id="id25">debug</a></li>
<li><a class="reference internal" href="#spew" id="id25">spew</a></li> <li><a class="reference internal" href="#spew" id="id26">spew</a></li>
<li><a class="reference internal" href="#check-config" id="id26">check_config</a></li> <li><a class="reference internal" href="#check-config" id="id27">check_config</a></li>
</ul> </ul>
</li> </li>
<li><a class="reference internal" href="#server-mechanics" id="id27">Server Mechanics</a><ul> <li><a class="reference internal" href="#server-mechanics" id="id28">Server Mechanics</a><ul>
<li><a class="reference internal" href="#preload-app" id="id28">preload_app</a></li> <li><a class="reference internal" href="#preload-app" id="id29">preload_app</a></li>
<li><a class="reference internal" href="#daemon" id="id29">daemon</a></li> <li><a class="reference internal" href="#daemon" id="id30">daemon</a></li>
<li><a class="reference internal" href="#pidfile" id="id30">pidfile</a></li> <li><a class="reference internal" href="#pidfile" id="id31">pidfile</a></li>
<li><a class="reference internal" href="#user" id="id31">user</a></li> <li><a class="reference internal" href="#user" id="id32">user</a></li>
<li><a class="reference internal" href="#group" id="id32">group</a></li> <li><a class="reference internal" href="#group" id="id33">group</a></li>
<li><a class="reference internal" href="#umask" id="id33">umask</a></li> <li><a class="reference internal" href="#umask" id="id34">umask</a></li>
<li><a class="reference internal" href="#tmp-upload-dir" id="id34">tmp_upload_dir</a></li> <li><a class="reference internal" href="#tmp-upload-dir" id="id35">tmp_upload_dir</a></li>
<li><a class="reference internal" href="#secure-scheme-headers" id="id35">secure_scheme_headers</a></li> <li><a class="reference internal" href="#secure-scheme-headers" id="id36">secure_scheme_headers</a></li>
<li><a class="reference internal" href="#x-forwarded-for-header" id="id36">x_forwarded_for_header</a></li> <li><a class="reference internal" href="#x-forwarded-for-header" id="id37">x_forwarded_for_header</a></li>
</ul> </ul>
</li> </li>
<li><a class="reference internal" href="#logging" id="id37">Logging</a><ul> <li><a class="reference internal" href="#logging" id="id38">Logging</a><ul>
<li><a class="reference internal" href="#accesslog" id="id38">accesslog</a></li> <li><a class="reference internal" href="#accesslog" id="id39">accesslog</a></li>
<li><a class="reference internal" href="#access-log-format" id="id39">access_log_format</a></li> <li><a class="reference internal" href="#access-log-format" id="id40">access_log_format</a></li>
<li><a class="reference internal" href="#errorlog" id="id40">errorlog</a></li> <li><a class="reference internal" href="#errorlog" id="id41">errorlog</a></li>
<li><a class="reference internal" href="#loglevel" id="id41">loglevel</a></li> <li><a class="reference internal" href="#loglevel" id="id42">loglevel</a></li>
<li><a class="reference internal" href="#logger-class" id="id42">logger_class</a></li> <li><a class="reference internal" href="#logger-class" id="id43">logger_class</a></li>
<li><a class="reference internal" href="#logconfig" id="id43">logconfig</a></li> <li><a class="reference internal" href="#logconfig" id="id44">logconfig</a></li>
</ul> </ul>
</li> </li>
<li><a class="reference internal" href="#process-naming" id="id44">Process Naming</a><ul> <li><a class="reference internal" href="#process-naming" id="id45">Process Naming</a><ul>
<li><a class="reference internal" href="#proc-name" id="id45">proc_name</a></li> <li><a class="reference internal" href="#proc-name" id="id46">proc_name</a></li>
<li><a class="reference internal" href="#default-proc-name" id="id46">default_proc_name</a></li> <li><a class="reference internal" href="#default-proc-name" id="id47">default_proc_name</a></li>
</ul> </ul>
</li> </li>
<li><a class="reference internal" href="#django" id="id47">Django</a><ul> <li><a class="reference internal" href="#django" id="id48">Django</a><ul>
<li><a class="reference internal" href="#django-settings" id="id48">django_settings</a></li> <li><a class="reference internal" href="#django-settings" id="id49">django_settings</a></li>
<li><a class="reference internal" href="#pythonpath" id="id49">pythonpath</a></li> <li><a class="reference internal" href="#pythonpath" id="id50">pythonpath</a></li>
</ul> </ul>
</li> </li>
<li><a class="reference internal" href="#server-hooks" id="id50">Server Hooks</a><ul> <li><a class="reference internal" href="#server-hooks" id="id51">Server Hooks</a><ul>
<li><a class="reference internal" href="#on-starting" id="id51">on_starting</a></li> <li><a class="reference internal" href="#on-starting" id="id52">on_starting</a></li>
<li><a class="reference internal" href="#on-reload" id="id52">on_reload</a></li> <li><a class="reference internal" href="#on-reload" id="id53">on_reload</a></li>
<li><a class="reference internal" href="#when-ready" id="id53">when_ready</a></li> <li><a class="reference internal" href="#when-ready" id="id54">when_ready</a></li>
<li><a class="reference internal" href="#pre-fork" id="id54">pre_fork</a></li> <li><a class="reference internal" href="#pre-fork" id="id55">pre_fork</a></li>
<li><a class="reference internal" href="#post-fork" id="id55">post_fork</a></li> <li><a class="reference internal" href="#post-fork" id="id56">post_fork</a></li>
<li><a class="reference internal" href="#pre-exec" id="id56">pre_exec</a></li> <li><a class="reference internal" href="#pre-exec" id="id57">pre_exec</a></li>
<li><a class="reference internal" href="#pre-request" id="id57">pre_request</a></li> <li><a class="reference internal" href="#pre-request" id="id58">pre_request</a></li>
<li><a class="reference internal" href="#post-request" id="id58">post_request</a></li> <li><a class="reference internal" href="#post-request" id="id59">post_request</a></li>
<li><a class="reference internal" href="#worker-exit" id="id59">worker_exit</a></li> <li><a class="reference internal" href="#worker-exit" id="id60">worker_exit</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>

View File

@ -1,4 +1,4 @@
/* line 17, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ /* line 17, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
html, body, div, span, applet, object, iframe, html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre, h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code, a, abbr, acronym, address, big, cite, code,
@ -20,45 +20,45 @@ time, mark, audio, video {
vertical-align: baseline; vertical-align: baseline;
} }
/* line 20, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ /* line 20, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
body { body {
line-height: 1; line-height: 1;
} }
/* line 22, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ /* line 22, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
ol, ul { ol, ul {
list-style: none; list-style: none;
} }
/* line 24, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ /* line 24, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
table { table {
border-collapse: collapse; border-collapse: collapse;
border-spacing: 0; border-spacing: 0;
} }
/* line 26, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ /* line 26, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
caption, th, td { caption, th, td {
text-align: left; text-align: left;
font-weight: normal; font-weight: normal;
vertical-align: middle; vertical-align: middle;
} }
/* line 28, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ /* line 28, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
q, blockquote { q, blockquote {
quotes: none; quotes: none;
} }
/* line 101, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ /* line 101, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
q:before, q:after, blockquote:before, blockquote:after { q:before, q:after, blockquote:before, blockquote:after {
content: ""; content: "";
content: none; content: none;
} }
/* line 30, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ /* line 30, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
a img { a img {
border: none; border: none;
} }
/* line 114, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ /* line 114, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary { article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {
display: block; display: block;
} }
@ -89,17 +89,17 @@ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav,
width: 620px; width: 620px;
} }
/* line 4, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 4, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
body { body {
font: 13px/1.5 Helvetica, Arial, 'Liberation Sans', FreeSans, sans-serif; font: 13px/1.5 Helvetica, Arial, 'Liberation Sans', FreeSans, sans-serif;
} }
/* line 6, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 6, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
a:focus { a:focus {
outline: 1px dotted invert; outline: 1px dotted invert;
} }
/* line 8, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 8, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
hr { hr {
border-color: #cccccc; border-color: #cccccc;
border-style: solid; border-style: solid;
@ -108,52 +108,52 @@ hr {
height: 0; height: 0;
} }
/* line 14, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 14, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
h1 { h1 {
font-size: 25px; font-size: 25px;
} }
/* line 16, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 16, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
h2 { h2 {
font-size: 23px; font-size: 23px;
} }
/* line 18, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 18, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
h3 { h3 {
font-size: 21px; font-size: 21px;
} }
/* line 20, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 20, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
h4 { h4 {
font-size: 19px; font-size: 19px;
} }
/* line 22, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 22, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
h5 { h5 {
font-size: 17px; font-size: 17px;
} }
/* line 24, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 24, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
h6 { h6 {
font-size: 15px; font-size: 15px;
} }
/* line 26, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 26, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
ol { ol {
list-style: decimal; list-style: decimal;
} }
/* line 28, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 28, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
ul { ul {
list-style: square; list-style: square;
} }
/* line 30, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 30, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
li { li {
margin-left: 30px; margin-left: 30px;
} }
/* line 32, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 32, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
p, p,
dl, dl,
hr, hr,
@ -211,7 +211,7 @@ a, a:visited, a:hover, a:active {
margin-right: 10px; margin-right: 10px;
list-style: none; list-style: none;
} }
/* line 11, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/typography/lists/_bullets.scss */ /* line 11, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/typography/lists/_bullets.scss */
#menu ul li { #menu ul li {
list-style-image: none; list-style-image: none;
list-style-type: none; list-style-type: none;

View File

@ -1,4 +1,4 @@
/* line 17, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ /* line 17, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
html, body, div, span, applet, object, iframe, html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre, h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code, a, abbr, acronym, address, big, cite, code,
@ -20,45 +20,45 @@ time, mark, audio, video {
vertical-align: baseline; vertical-align: baseline;
} }
/* line 20, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ /* line 20, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
body { body {
line-height: 1; line-height: 1;
} }
/* line 22, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ /* line 22, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
ol, ul { ol, ul {
list-style: none; list-style: none;
} }
/* line 24, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ /* line 24, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
table { table {
border-collapse: collapse; border-collapse: collapse;
border-spacing: 0; border-spacing: 0;
} }
/* line 26, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ /* line 26, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
caption, th, td { caption, th, td {
text-align: left; text-align: left;
font-weight: normal; font-weight: normal;
vertical-align: middle; vertical-align: middle;
} }
/* line 28, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ /* line 28, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
q, blockquote { q, blockquote {
quotes: none; quotes: none;
} }
/* line 101, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ /* line 101, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
q:before, q:after, blockquote:before, blockquote:after { q:before, q:after, blockquote:before, blockquote:after {
content: ""; content: "";
content: none; content: none;
} }
/* line 30, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ /* line 30, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
a img { a img {
border: none; border: none;
} }
/* line 114, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ /* line 114, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary { article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {
display: block; display: block;
} }
@ -89,17 +89,17 @@ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav,
width: 620px; width: 620px;
} }
/* line 4, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 4, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
body { body {
font: 13px/1.5 Helvetica, Arial, 'Liberation Sans', FreeSans, sans-serif; font: 13px/1.5 Helvetica, Arial, 'Liberation Sans', FreeSans, sans-serif;
} }
/* line 6, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 6, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
a:focus { a:focus {
outline: 1px dotted invert; outline: 1px dotted invert;
} }
/* line 8, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 8, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
hr { hr {
border-color: #cccccc; border-color: #cccccc;
border-style: solid; border-style: solid;
@ -108,52 +108,52 @@ hr {
height: 0; height: 0;
} }
/* line 14, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 14, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
h1 { h1 {
font-size: 25px; font-size: 25px;
} }
/* line 16, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 16, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
h2 { h2 {
font-size: 23px; font-size: 23px;
} }
/* line 18, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 18, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
h3 { h3 {
font-size: 21px; font-size: 21px;
} }
/* line 20, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 20, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
h4 { h4 {
font-size: 19px; font-size: 19px;
} }
/* line 22, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 22, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
h5 { h5 {
font-size: 17px; font-size: 17px;
} }
/* line 24, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 24, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
h6 { h6 {
font-size: 15px; font-size: 15px;
} }
/* line 26, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 26, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
ol { ol {
list-style: decimal; list-style: decimal;
} }
/* line 28, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 28, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
ul { ul {
list-style: square; list-style: square;
} }
/* line 30, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 30, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
li { li {
margin-left: 30px; margin-left: 30px;
} }
/* line 32, /Library/Ruby/Gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */ /* line 32, /var/lib/gems/1.8/gems/compass-960-plugin-0.10.4/stylesheets/960/_text.sass */
p, p,
dl, dl,
hr, hr,
@ -211,7 +211,7 @@ a, a:visited, a:hover, a:active {
margin-right: 10px; margin-right: 10px;
list-style: none; list-style: none;
} }
/* line 11, /Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/typography/lists/_bullets.scss */ /* line 11, /var/lib/gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/typography/lists/_bullets.scss */
#menu ul li { #menu ul li {
list-style-image: none; list-style-image: none;
list-style-type: none; list-style-type: none;

View File

@ -145,18 +145,6 @@ they launch will be the process they need to monior. Daemonizing
will fork-exec which creates an unmonitored process and generally just will fork-exec which creates an unmonitored process and generally just
confuses the monitor services.</p> confuses the monitor services.</p>
</div> </div>
<div class="section" id="circus">
<h3><a class="toc-backref" href="#contents">Circus</a></h3>
<p><a class="reference external" href="http://circus.readthedocs.org/en/latest/index.html">Circus</a> can be
used to monitor gunicorn. A simple configuration is:</p>
<pre class="literal-block">
[watcher:mywebapp]
cmd = gunicorn -w 3 test:app
working_dir = /Users/benoitc/work/gunicorn/examples
send_hup = true
</pre>
<p>Then you can easily manage Gunicorn using the <a class="reference external" href="http://circus.readthedocs.org/en/latest/commands/#cli">circusctl</a> command.</p>
</div>
<div class="section" id="runit"> <div class="section" id="runit">
<h3><a class="toc-backref" href="#contents">Runit</a></h3> <h3><a class="toc-backref" href="#contents">Runit</a></h3>
<p>A popular method for deploying Gunicorn is to have it monitored by <a class="reference external" href="http://smarden.org/runit/">runit</a>. <p>A popular method for deploying Gunicorn is to have it monitored by <a class="reference external" href="http://smarden.org/runit/">runit</a>.

View File

@ -79,19 +79,17 @@ def app(environ, start_response):
</ul> </ul>
</div> </div>
<div class="blurb"> <div class="blurb">
<h3>Version 0.14.3 / 2012-05-15</h3> <h3>Version 0.14.4 / 2012-06-24</h3>
<ul> <ul>
<li>improvement: performance of http.body.Body.readline()</li> <li>new --graceful-timeout option</li>
<li>improvement: log HTTP errors in access log like <li>fix multiple issues with request limit</li>
Apache</li> <li>more fixes in django settings resolutions</li>
<li>improvment: display traceback when the worker fails to <li>fix gevent.core import</li>
boot</li> <li>fix keepalive=0 in eventlet worker</li>
<li>improvement: makes gunicorn work with gevent 1.0</li> <li>fix handle_error display with the unix worker</li>
<li>examples: websocket example now supports hybi13</li> <li>fix tornado.wsgi.WSGIApplication calling error</li>
<li>fix: reopen log files after initialization</li> <li><strong>breaking change</strong>: take the control on graceful reload back.
<li>fix: websockets support</li> graceful can't be overrided anymore using the on_reload function.</li>
<li>fix: django1.4 support</li>
<li>fix: only load the paster application 1 time</li>
</ul> </ul>
</div> </div>
<div id="footer"> <div id="footer">

View File

@ -113,8 +113,10 @@ installed, this is the most likely reason.</p>
</div> </div>
<div class="section" id="debian-gnu-linux"> <div class="section" id="debian-gnu-linux">
<h2><a class="toc-backref" href="#contents">Debian GNU/Linux</a></h2> <h2><a class="toc-backref" href="#contents">Debian GNU/Linux</a></h2>
<p>If you are using Debian GNU/Linux is is recommended that you use system <p>If you are using Debian GNU/Linux and it is recommended that you use
packages to install Gunicorn. This has a number of advantages:</p> system packages to install Gunicorn except maybe when you want to use
different versions of gunicorn with virtualenv. This has a number of
advantages:</p>
<blockquote> <blockquote>
<ul class="simple"> <ul class="simple">
<li>Zero-effort installation: Automatically starts multiple Gunicorn instances <li>Zero-effort installation: Automatically starts multiple Gunicorn instances

View File

@ -29,6 +29,20 @@
<div id="content"> <div id="content">
<div class="document"> <div class="document">
<div class="section" id="id1"> <div class="section" id="id1">
<h2><a class="toc-backref" href="#contents">0.14.4 / 2012-06-24</a></h2>
<ul class="simple">
<li>new --graceful-timeout option</li>
<li>fix multiple issues with request limit</li>
<li>more fixes in django settings resolutions</li>
<li>fix gevent.core import</li>
<li>fix keepalive=0 in eventlet worker</li>
<li>fix handle_error display with the unix worker</li>
<li>fix tornado.wsgi.WSGIApplication calling error</li>
<li><strong>breaking change</strong>: take the control on graceful reload back.
graceful can't be overrided anymore using the on_reload function.</li>
</ul>
</div>
<div class="section" id="id2">
<h2><a class="toc-backref" href="#contents">0.14.3 / 2012-05-15</a></h2> <h2><a class="toc-backref" href="#contents">0.14.3 / 2012-05-15</a></h2>
<ul class="simple"> <ul class="simple">
<li>improvement: performance of http.body.Body.readline()</li> <li>improvement: performance of http.body.Body.readline()</li>
@ -42,7 +56,7 @@
<li>fix: only load the paster application 1 time</li> <li>fix: only load the paster application 1 time</li>
</ul> </ul>
</div> </div>
<div class="section" id="id2"> <div class="section" id="id3">
<h2><a class="toc-backref" href="#contents">0.14.2 / 2012-03-16</a></h2> <h2><a class="toc-backref" href="#contents">0.14.2 / 2012-03-16</a></h2>
<ul class="simple"> <ul class="simple">
<li>add validate_class validator: allows to use a class or a method to <li>add validate_class validator: allows to use a class or a method to
@ -53,13 +67,13 @@ initialize the app during in-code configuration</li>
<li>Fix gevent_pywsgi worker</li> <li>Fix gevent_pywsgi worker</li>
</ul> </ul>
</div> </div>
<div class="section" id="id3"> <div class="section" id="id4">
<h2><a class="toc-backref" href="#contents">0.14.1 / 2012-03-02</a></h2> <h2><a class="toc-backref" href="#contents">0.14.1 / 2012-03-02</a></h2>
<ul class="simple"> <ul class="simple">
<li>fixing source archive, reducing its size</li> <li>fixing source archive, reducing its size</li>
</ul> </ul>
</div> </div>
<div class="section" id="id4"> <div class="section" id="id5">
<h2><a class="toc-backref" href="#contents">0.14.0 / 2012-02-27</a></h2> <h2><a class="toc-backref" href="#contents">0.14.0 / 2012-02-27</a></h2>
<ul class="simple"> <ul class="simple">
<li>check if Request line is too large: You can now pass the parameter <li>check if Request line is too large: You can now pass the parameter
@ -82,14 +96,14 @@ setting an empty string.</li>
<li>many other fixes.</li> <li>many other fixes.</li>
</ul> </ul>
</div> </div>
<div class="section" id="id5"> <div class="section" id="id6">
<h2><a class="toc-backref" href="#contents">0.13.4 / 2011-09-23</a></h2> <h2><a class="toc-backref" href="#contents">0.13.4 / 2011-09-23</a></h2>
<ul class="simple"> <ul class="simple">
<li>fix util.closerange function used to prevent leaking fds on python 2.5 <li>fix util.closerange function used to prevent leaking fds on python 2.5
(typo)</li> (typo)</li>
</ul> </ul>
</div> </div>
<div class="section" id="id6"> <div class="section" id="id7">
<h2><a class="toc-backref" href="#contents">0.13.3 / 2011-09-19</a></h2> <h2><a class="toc-backref" href="#contents">0.13.3 / 2011-09-19</a></h2>
<ul class="simple"> <ul class="simple">
<li>refactor gevent worker</li> <li>refactor gevent worker</li>
@ -97,7 +111,7 @@ setting an empty string.</li>
<li>fix inverted request_time computation</li> <li>fix inverted request_time computation</li>
</ul> </ul>
</div> </div>
<div class="section" id="id7"> <div class="section" id="id8">
<h2><a class="toc-backref" href="#contents">0.13.2 / 2011-09-17</a></h2> <h2><a class="toc-backref" href="#contents">0.13.2 / 2011-09-17</a></h2>
<ul class="simple"> <ul class="simple">
<li>Add support for Tornado 2.0 in tornado worker</li> <li>Add support for Tornado 2.0 in tornado worker</li>
@ -110,13 +124,13 @@ request time</li>
<li>Fix Django reloading</li> <li>Fix Django reloading</li>
</ul> </ul>
</div> </div>
<div class="section" id="id8"> <div class="section" id="id9">
<h2><a class="toc-backref" href="#contents">0.13.1 / 2011-08-22</a></h2> <h2><a class="toc-backref" href="#contents">0.13.1 / 2011-08-22</a></h2>
<ul class="simple"> <ul class="simple">
<li>Fix unix socket. log argument was missing.</li> <li>Fix unix socket. log argument was missing.</li>
</ul> </ul>
</div> </div>
<div class="section" id="id9"> <div class="section" id="id10">
<h2><a class="toc-backref" href="#contents">0.13.0 / 2011-08-22</a></h2> <h2><a class="toc-backref" href="#contents">0.13.0 / 2011-08-22</a></h2>
<ul class="simple"> <ul class="simple">
<li>Improve logging: allows file-reopening and add access log file <li>Improve logging: allows file-reopening and add access log file
@ -134,7 +148,7 @@ SIGHUP</li>
<li>Fix the use of sendfile in wsgi.file_wrapper</li> <li>Fix the use of sendfile in wsgi.file_wrapper</li>
</ul> </ul>
</div> </div>
<div class="section" id="id10"> <div class="section" id="id11">
<h2><a class="toc-backref" href="#contents">0.12.2 / 2011-05-18</a></h2> <h2><a class="toc-backref" href="#contents">0.12.2 / 2011-05-18</a></h2>
<ul class="simple"> <ul class="simple">
<li>Add wsgi.file_wrapper optimised for FreeBSD, Linux &amp; MacOSX (use <li>Add wsgi.file_wrapper optimised for FreeBSD, Linux &amp; MacOSX (use
@ -145,7 +159,7 @@ code.</li>
<li>Compatible with gevent 0.14dev</li> <li>Compatible with gevent 0.14dev</li>
</ul> </ul>
</div> </div>
<div class="section" id="id11"> <div class="section" id="id12">
<h2><a class="toc-backref" href="#contents">0.12.1 / 2011-03-23</a></h2> <h2><a class="toc-backref" href="#contents">0.12.1 / 2011-03-23</a></h2>
<ul class="simple"> <ul class="simple">
<li>Add &quot;on_starting&quot; hook. This hook can be used to set anything before <li>Add &quot;on_starting&quot; hook. This hook can be used to set anything before
@ -157,7 +171,7 @@ the arbiter really start</li>
<li>Fix ipv6 handling</li> <li>Fix ipv6 handling</li>
</ul> </ul>
</div> </div>
<div class="section" id="id12"> <div class="section" id="id13">
<h2><a class="toc-backref" href="#contents">0.12.0 / 2010-12-22</a></h2> <h2><a class="toc-backref" href="#contents">0.12.0 / 2010-12-22</a></h2>
<ul class="simple"> <ul class="simple">
<li>Add support for logging configuration using a ini file. <li>Add support for logging configuration using a ini file.
@ -175,7 +189,7 @@ it and use it.</li>
<li>Set the number of workers to zero on WINCH</li> <li>Set the number of workers to zero on WINCH</li>
</ul> </ul>
</div> </div>
<div class="section" id="id13"> <div class="section" id="id14">
<h2><a class="toc-backref" href="#contents">0.11.2 / 2010-10-30</a></h2> <h2><a class="toc-backref" href="#contents">0.11.2 / 2010-10-30</a></h2>
<ul class="simple"> <ul class="simple">
<li>Add SERVER_SOFTWARE to the os.environ</li> <li>Add SERVER_SOFTWARE to the os.environ</li>
@ -188,7 +202,7 @@ it and use it.</li>
<li>Fix readline in wsgi.input</li> <li>Fix readline in wsgi.input</li>
</ul> </ul>
</div> </div>
<div class="section" id="id14"> <div class="section" id="id15">
<h2><a class="toc-backref" href="#contents">0.11.1 / 2010-09-02</a></h2> <h2><a class="toc-backref" href="#contents">0.11.1 / 2010-09-02</a></h2>
<ul class="simple"> <ul class="simple">
<li>Implement max-requests feature to prevent memory leaks.</li> <li>Implement max-requests feature to prevent memory leaks.</li>
@ -200,7 +214,7 @@ it and use it.</li>
<li>Workaround to prevent Gevent worker to segfault on MacOSX.</li> <li>Workaround to prevent Gevent worker to segfault on MacOSX.</li>
</ul> </ul>
</div> </div>
<div class="section" id="id15"> <div class="section" id="id16">
<h2><a class="toc-backref" href="#contents">0.11.0 / 2010-08-12</a></h2> <h2><a class="toc-backref" href="#contents">0.11.0 / 2010-08-12</a></h2>
<ul class="simple"> <ul class="simple">
<li>Improve dramatically performances of Gevent and Eventlet workers</li> <li>Improve dramatically performances of Gevent and Eventlet workers</li>
@ -209,7 +223,7 @@ it and use it.</li>
<li>Fix latency issue in async workers</li> <li>Fix latency issue in async workers</li>
</ul> </ul>
</div> </div>
<div class="section" id="id16"> <div class="section" id="id17">
<h2><a class="toc-backref" href="#contents">0.10.1 / 2010-08-06</a></h2> <h2><a class="toc-backref" href="#contents">0.10.1 / 2010-08-06</a></h2>
<ul class="simple"> <ul class="simple">
<li>Improve gevent's workers. Add &quot;egg:gunicorn#gevent_wsgi&quot; worker using <li>Improve gevent's workers. Add &quot;egg:gunicorn#gevent_wsgi&quot; worker using
@ -223,7 +237,7 @@ need really fast connections and don't need streaming, keepalive or ssl.</li>
<li>Fix gevent dns issue</li> <li>Fix gevent dns issue</li>
</ul> </ul>
</div> </div>
<div class="section" id="id17"> <div class="section" id="id18">
<h2><a class="toc-backref" href="#contents">0.10.0 / 2010-07-08</a></h2> <h2><a class="toc-backref" href="#contents">0.10.0 / 2010-07-08</a></h2>
<ul class="simple"> <ul class="simple">
<li>New HTTP parser.</li> <li>New HTTP parser.</li>
@ -243,7 +257,7 @@ the preload flag can help a bit in small memory VM's.</li>
<li>New documentation website.</li> <li>New documentation website.</li>
</ul> </ul>
</div> </div>
<div class="section" id="id18"> <div class="section" id="id19">
<h2><a class="toc-backref" href="#contents">0.9.1 / 2010-05-26</a></h2> <h2><a class="toc-backref" href="#contents">0.9.1 / 2010-05-26</a></h2>
<ul class="simple"> <ul class="simple">
<li>Support https via X-Forwarded-Protocol or X-Forwarded-Ssl headers</li> <li>Support https via X-Forwarded-Protocol or X-Forwarded-Ssl headers</li>
@ -252,7 +266,7 @@ the preload flag can help a bit in small memory VM's.</li>
<li>Fix umask in unix socket</li> <li>Fix umask in unix socket</li>
</ul> </ul>
</div> </div>
<div class="section" id="id19"> <div class="section" id="id20">
<h2><a class="toc-backref" href="#contents">0.9.0 / 2010-05-24</a></h2> <h2><a class="toc-backref" href="#contents">0.9.0 / 2010-05-24</a></h2>
<ul class="simple"> <ul class="simple">
<li>Added <em>when_ready</em> hook. Called just after the server is started</li> <li>Added <em>when_ready</em> hook. Called just after the server is started</li>
@ -265,7 +279,7 @@ are forked.</li>
<li>Documentation improvements</li> <li>Documentation improvements</li>
</ul> </ul>
</div> </div>
<div class="section" id="id20"> <div class="section" id="id21">
<h2><a class="toc-backref" href="#contents">0.8.1 / 2010-04-29</a></h2> <h2><a class="toc-backref" href="#contents">0.8.1 / 2010-04-29</a></h2>
<ul class="simple"> <ul class="simple">
<li>Fix builtins import in config</li> <li>Fix builtins import in config</li>
@ -274,7 +288,7 @@ are forked.</li>
<li>Delay application loading until after processing all configuration</li> <li>Delay application loading until after processing all configuration</li>
</ul> </ul>
</div> </div>
<div class="section" id="id21"> <div class="section" id="id22">
<h2><a class="toc-backref" href="#contents">0.8.0 / 2010-04-22</a></h2> <h2><a class="toc-backref" href="#contents">0.8.0 / 2010-04-22</a></h2>
<ul class="simple"> <ul class="simple">
<li>Refactored Worker management for better async support. Now use the -k option <li>Refactored Worker management for better async support. Now use the -k option
@ -282,7 +296,7 @@ to set the type of request processing to use</li>
<li>Added support for <a class="reference external" href="http://www.tornadoweb.org/">Tornado</a></li> <li>Added support for <a class="reference external" href="http://www.tornadoweb.org/">Tornado</a></li>
</ul> </ul>
</div> </div>
<div class="section" id="id22"> <div class="section" id="id23">
<h2><a class="toc-backref" href="#contents">0.7.2 / 2010-04-15</a></h2> <h2><a class="toc-backref" href="#contents">0.7.2 / 2010-04-15</a></h2>
<ul class="simple"> <ul class="simple">
<li>Added --spew option to help debugging (installs a system trace hook)</li> <li>Added --spew option to help debugging (installs a system trace hook)</li>
@ -290,13 +304,13 @@ to set the type of request processing to use</li>
<li>Fix a bug in start_response on error</li> <li>Fix a bug in start_response on error</li>
</ul> </ul>
</div> </div>
<div class="section" id="id23"> <div class="section" id="id24">
<h2><a class="toc-backref" href="#contents">0.7.1 / 2010-04-01</a></h2> <h2><a class="toc-backref" href="#contents">0.7.1 / 2010-04-01</a></h2>
<ul class="simple"> <ul class="simple">
<li>Fix bug when responses have no body.</li> <li>Fix bug when responses have no body.</li>
</ul> </ul>
</div> </div>
<div class="section" id="id24"> <div class="section" id="id25">
<h2><a class="toc-backref" href="#contents">0.7.0 / 2010-03-26</a></h2> <h2><a class="toc-backref" href="#contents">0.7.0 / 2010-03-26</a></h2>
<ul class="simple"> <ul class="simple">
<li>Added support for <a class="reference external" href="http://eventlet.net">Eventlet</a> and <a class="reference external" href="http://gevent.org">Gevent</a> based workers.</li> <li>Added support for <a class="reference external" href="http://eventlet.net">Eventlet</a> and <a class="reference external" href="http://gevent.org">Gevent</a> based workers.</li>
@ -306,28 +320,28 @@ to set the type of request processing to use</li>
<li>Fix <a class="reference external" href="http://www.python.org/dev/peps/pep-0333/">PEP 333</a> compliance for the write callable.</li> <li>Fix <a class="reference external" href="http://www.python.org/dev/peps/pep-0333/">PEP 333</a> compliance for the write callable.</li>
</ul> </ul>
</div> </div>
<div class="section" id="id25"> <div class="section" id="id26">
<h2><a class="toc-backref" href="#contents">0.6.5 / 2010-03-11</a></h2> <h2><a class="toc-backref" href="#contents">0.6.5 / 2010-03-11</a></h2>
<ul class="simple"> <ul class="simple">
<li>Fix pidfile handling</li> <li>Fix pidfile handling</li>
<li>Fix Exception Error</li> <li>Fix Exception Error</li>
</ul> </ul>
</div> </div>
<div class="section" id="id26"> <div class="section" id="id27">
<h2><a class="toc-backref" href="#contents">0.6.4 / 2010-03-08</a></h2> <h2><a class="toc-backref" href="#contents">0.6.4 / 2010-03-08</a></h2>
<ul class="simple"> <ul class="simple">
<li>Use cStringIO for performance when possible.</li> <li>Use cStringIO for performance when possible.</li>
<li>Fix worker freeze when a remote connection closes unexpectedly.</li> <li>Fix worker freeze when a remote connection closes unexpectedly.</li>
</ul> </ul>
</div> </div>
<div class="section" id="id27"> <div class="section" id="id28">
<h2><a class="toc-backref" href="#contents">0.6.3 / 2010-03-07</a></h2> <h2><a class="toc-backref" href="#contents">0.6.3 / 2010-03-07</a></h2>
<ul class="simple"> <ul class="simple">
<li>Make HTTP parsing faster.</li> <li>Make HTTP parsing faster.</li>
<li>Various bug fixes</li> <li>Various bug fixes</li>
</ul> </ul>
</div> </div>
<div class="section" id="id28"> <div class="section" id="id29">
<h2><a class="toc-backref" href="#contents">0.6.2 / 2010-03-01</a></h2> <h2><a class="toc-backref" href="#contents">0.6.2 / 2010-03-01</a></h2>
<ul class="simple"> <ul class="simple">
<li>Added support for chunked response.</li> <li>Added support for chunked response.</li>
@ -338,7 +352,7 @@ temporary data.</li>
<li>Workers are now murdered by age (the oldest is killed first).</li> <li>Workers are now murdered by age (the oldest is killed first).</li>
</ul> </ul>
</div> </div>
<div class="section" id="id29"> <div class="section" id="id30">
<h2><a class="toc-backref" href="#contents">0.6.1 / 2010-02-24</a></h2> <h2><a class="toc-backref" href="#contents">0.6.1 / 2010-02-24</a></h2>
<ul class="simple"> <ul class="simple">
<li>Added gunicorn config file support for Django admin command</li> <li>Added gunicorn config file support for Django admin command</li>
@ -346,7 +360,7 @@ temporary data.</li>
<li>Removed TTIN/TTOU from workers which blocked other signals.</li> <li>Removed TTIN/TTOU from workers which blocked other signals.</li>
</ul> </ul>
</div> </div>
<div class="section" id="id30"> <div class="section" id="id31">
<h2><a class="toc-backref" href="#contents">0.6 / 2010-02-22</a></h2> <h2><a class="toc-backref" href="#contents">0.6 / 2010-02-22</a></h2>
<ul class="simple"> <ul class="simple">
<li>Added setproctitle support</li> <li>Added setproctitle support</li>
@ -354,14 +368,14 @@ temporary data.</li>
permissions, new uid/gid permissions are only set for workers.</li> permissions, new uid/gid permissions are only set for workers.</li>
</ul> </ul>
</div> </div>
<div class="section" id="id31"> <div class="section" id="id32">
<h2><a class="toc-backref" href="#contents">0.5.1 / 2010-02-22</a></h2> <h2><a class="toc-backref" href="#contents">0.5.1 / 2010-02-22</a></h2>
<ul class="simple"> <ul class="simple">
<li>Fix umask</li> <li>Fix umask</li>
<li>Added Debian packaging</li> <li>Added Debian packaging</li>
</ul> </ul>
</div> </div>
<div class="section" id="id32"> <div class="section" id="id33">
<h2><a class="toc-backref" href="#contents">0.5 / 2010-02-20</a></h2> <h2><a class="toc-backref" href="#contents">0.5 / 2010-02-20</a></h2>
<ul class="simple"> <ul class="simple">
<li>Added <a class="reference external" href="configuration.html">configuration file</a> handler.</li> <li>Added <a class="reference external" href="configuration.html">configuration file</a> handler.</li>
@ -383,38 +397,39 @@ permissions, new uid/gid permissions are only set for workers.</li>
<div class="contents topic" id="contents"> <div class="contents topic" id="contents">
<p class="topic-title first">Contents</p> <p class="topic-title first">Contents</p>
<ul class="simple"> <ul class="simple">
<li><a class="reference internal" href="#id1" id="id33">0.14.3 / 2012-05-15</a></li> <li><a class="reference internal" href="#id1" id="id34">0.14.4 / 2012-06-24</a></li>
<li><a class="reference internal" href="#id2" id="id34">0.14.2 / 2012-03-16</a></li> <li><a class="reference internal" href="#id2" id="id35">0.14.3 / 2012-05-15</a></li>
<li><a class="reference internal" href="#id3" id="id35">0.14.1 / 2012-03-02</a></li> <li><a class="reference internal" href="#id3" id="id36">0.14.2 / 2012-03-16</a></li>
<li><a class="reference internal" href="#id4" id="id36">0.14.0 / 2012-02-27</a></li> <li><a class="reference internal" href="#id4" id="id37">0.14.1 / 2012-03-02</a></li>
<li><a class="reference internal" href="#id5" id="id37">0.13.4 / 2011-09-23</a></li> <li><a class="reference internal" href="#id5" id="id38">0.14.0 / 2012-02-27</a></li>
<li><a class="reference internal" href="#id6" id="id38">0.13.3 / 2011-09-19</a></li> <li><a class="reference internal" href="#id6" id="id39">0.13.4 / 2011-09-23</a></li>
<li><a class="reference internal" href="#id7" id="id39">0.13.2 / 2011-09-17</a></li> <li><a class="reference internal" href="#id7" id="id40">0.13.3 / 2011-09-19</a></li>
<li><a class="reference internal" href="#id8" id="id40">0.13.1 / 2011-08-22</a></li> <li><a class="reference internal" href="#id8" id="id41">0.13.2 / 2011-09-17</a></li>
<li><a class="reference internal" href="#id9" id="id41">0.13.0 / 2011-08-22</a></li> <li><a class="reference internal" href="#id9" id="id42">0.13.1 / 2011-08-22</a></li>
<li><a class="reference internal" href="#id10" id="id42">0.12.2 / 2011-05-18</a></li> <li><a class="reference internal" href="#id10" id="id43">0.13.0 / 2011-08-22</a></li>
<li><a class="reference internal" href="#id11" id="id43">0.12.1 / 2011-03-23</a></li> <li><a class="reference internal" href="#id11" id="id44">0.12.2 / 2011-05-18</a></li>
<li><a class="reference internal" href="#id12" id="id44">0.12.0 / 2010-12-22</a></li> <li><a class="reference internal" href="#id12" id="id45">0.12.1 / 2011-03-23</a></li>
<li><a class="reference internal" href="#id13" id="id45">0.11.2 / 2010-10-30</a></li> <li><a class="reference internal" href="#id13" id="id46">0.12.0 / 2010-12-22</a></li>
<li><a class="reference internal" href="#id14" id="id46">0.11.1 / 2010-09-02</a></li> <li><a class="reference internal" href="#id14" id="id47">0.11.2 / 2010-10-30</a></li>
<li><a class="reference internal" href="#id15" id="id47">0.11.0 / 2010-08-12</a></li> <li><a class="reference internal" href="#id15" id="id48">0.11.1 / 2010-09-02</a></li>
<li><a class="reference internal" href="#id16" id="id48">0.10.1 / 2010-08-06</a></li> <li><a class="reference internal" href="#id16" id="id49">0.11.0 / 2010-08-12</a></li>
<li><a class="reference internal" href="#id17" id="id49">0.10.0 / 2010-07-08</a></li> <li><a class="reference internal" href="#id17" id="id50">0.10.1 / 2010-08-06</a></li>
<li><a class="reference internal" href="#id18" id="id50">0.9.1 / 2010-05-26</a></li> <li><a class="reference internal" href="#id18" id="id51">0.10.0 / 2010-07-08</a></li>
<li><a class="reference internal" href="#id19" id="id51">0.9.0 / 2010-05-24</a></li> <li><a class="reference internal" href="#id19" id="id52">0.9.1 / 2010-05-26</a></li>
<li><a class="reference internal" href="#id20" id="id52">0.8.1 / 2010-04-29</a></li> <li><a class="reference internal" href="#id20" id="id53">0.9.0 / 2010-05-24</a></li>
<li><a class="reference internal" href="#id21" id="id53">0.8.0 / 2010-04-22</a></li> <li><a class="reference internal" href="#id21" id="id54">0.8.1 / 2010-04-29</a></li>
<li><a class="reference internal" href="#id22" id="id54">0.7.2 / 2010-04-15</a></li> <li><a class="reference internal" href="#id22" id="id55">0.8.0 / 2010-04-22</a></li>
<li><a class="reference internal" href="#id23" id="id55">0.7.1 / 2010-04-01</a></li> <li><a class="reference internal" href="#id23" id="id56">0.7.2 / 2010-04-15</a></li>
<li><a class="reference internal" href="#id24" id="id56">0.7.0 / 2010-03-26</a></li> <li><a class="reference internal" href="#id24" id="id57">0.7.1 / 2010-04-01</a></li>
<li><a class="reference internal" href="#id25" id="id57">0.6.5 / 2010-03-11</a></li> <li><a class="reference internal" href="#id25" id="id58">0.7.0 / 2010-03-26</a></li>
<li><a class="reference internal" href="#id26" id="id58">0.6.4 / 2010-03-08</a></li> <li><a class="reference internal" href="#id26" id="id59">0.6.5 / 2010-03-11</a></li>
<li><a class="reference internal" href="#id27" id="id59">0.6.3 / 2010-03-07</a></li> <li><a class="reference internal" href="#id27" id="id60">0.6.4 / 2010-03-08</a></li>
<li><a class="reference internal" href="#id28" id="id60">0.6.2 / 2010-03-01</a></li> <li><a class="reference internal" href="#id28" id="id61">0.6.3 / 2010-03-07</a></li>
<li><a class="reference internal" href="#id29" id="id61">0.6.1 / 2010-02-24</a></li> <li><a class="reference internal" href="#id29" id="id62">0.6.2 / 2010-03-01</a></li>
<li><a class="reference internal" href="#id30" id="id62">0.6 / 2010-02-22</a></li> <li><a class="reference internal" href="#id30" id="id63">0.6.1 / 2010-02-24</a></li>
<li><a class="reference internal" href="#id31" id="id63">0.5.1 / 2010-02-22</a></li> <li><a class="reference internal" href="#id31" id="id64">0.6 / 2010-02-22</a></li>
<li><a class="reference internal" href="#id32" id="id64">0.5 / 2010-02-20</a></li> <li><a class="reference internal" href="#id32" id="id65">0.5.1 / 2010-02-22</a></li>
<li><a class="reference internal" href="#id33" id="id66">0.5 / 2010-02-20</a></li>
</ul> </ul>
</div> </div>
</div> </div>

View File

@ -8,6 +8,20 @@ _TOC_TOP_
_TOC_BOT_ _TOC_BOT_
0.14.4 / 2012-06-24
-------------------
- new --graceful-timeout option
- fix multiple issues with request limit
- more fixes in django settings resolutions
- fix gevent.core import
- fix keepalive=0 in eventlet worker
- fix handle_error display with the unix worker
- fix tornado.wsgi.WSGIApplication calling error
- **breaking change**: take the control on graceful reload back.
graceful can't be overrided anymore using the on_reload function.
0.14.3 / 2012-05-15 0.14.3 / 2012-05-15
------------------- -------------------