Merge branch 'master' of github.com:benoitc/gunicorn

Conflicts:
	doc/htdocs/news.html
This commit is contained in:
benoitc 2010-03-10 21:05:15 +01:00
commit badad6d33d
6 changed files with 70 additions and 20 deletions

View File

@ -50,6 +50,25 @@
<div class="document" id="faq">
<h1 class="title">FAQ</h1>
<dl class="docutils">
<dt>What is a slow client?</dt>
<dd>A slow client is defined as a request that can take an arbitrary amount of
time to send or read a request. Sometimes due to network performance or
because it is a malicious client attempting to cause problems. Check out
the <a class="reference external" href="http://ha.ckers.org/slowloris/">slowloris</a> script to generate slow client traffic.</dd>
<dt>What is a fast client?</dt>
<dd>Generally speaking a fast client is something that is being served over the
local network or from the same machine. This generally would refer to requests
forwarded from an upstream proxy. Also see the above FAQ for what a fast
client is not.</dd>
<dt>Why only fast clients?</dt>
<dd>By designing a web server to only handle fast clients we can greatly simplify
the implementation. Think of it as a separation of concerns where your proxy
handles talking to the big bad world of the internet and filters the requests
to your application code.</dd>
<dt>How might I test a proxy configuration?</dt>
<dd>Check out <a class="reference external" href="http://ha.ckers.org/slowloris/">slowloris</a> for a script that will generate significant slow
traffic. If your application remains responsive through out that test you
should be comfortable that all is well with your configuration.</dd>
<dt>How do I reload my application in Gunicorn?</dt>
<dd><p class="first">You can gracefully reload by sending HUP signal to gunicorn:</p>
<pre class="last literal-block">
@ -67,10 +86,12 @@ $ kill -TTOU $masterpid
</pre>
</dd>
<dt>How do I set SCRIPT_NAME?</dt>
<dd>By default <tt class="docutils literal"><span class="pre">SCRIPT_NAME</span></tt> is an empy string. The value could be set by
setting <tt class="docutils literal"><span class="pre">SCRIPT_NAME</span></tt> in the environment or as an HTTP header.</dd>
<dd>By default <tt class="docutils literal">SCRIPT_NAME</tt> is an empy string. The value could be set by
setting <tt class="docutils literal">SCRIPT_NAME</tt> in the environment or as an HTTP header.</dd>
<dt>How to name processes?</dt>
<dd>You need to install the Python package <a class="reference external" href="http://pypi.python.org/pypi/setproctitle">setproctitle</a>. Then you can name your process with <cite>-n</cite> or just let the default. If you use a configuration file you can set the process name with the proc_name option.</dd>
<dd>You need to install the Python package <a class="reference external" href="http://pypi.python.org/pypi/setproctitle">setproctitle</a>. Then you can name
your process with <cite>-n</cite> or just let the default. If you use a configuration
file you can set the process name with the proc_name option.</dd>
</dl>
</div>

View File

@ -47,7 +47,7 @@
<div class="document" id="green-unicorn">
<h1 class="title">Green Unicorn</h1>
<p>Green Unicorn (gunicorn) is an HTTP/WSGI Server for UNIX designed to serve fast clients and nothing else.</p>
<p>Green Unicorn (gunicorn) is an HTTP/WSGI Server for UNIX designed to serve <a class="reference external" href="faq.html">fast clients</a> and nothing else.</p>
<p>This is a port of <a class="reference external" href="http://unicorn.bogomips.org/">Unicorn</a> in Python. Meet us on the <a class="reference external" href="http://webchat.freenode.net/?channels=gunicorn">#gunicorn IRC channel</a> on <a class="reference external" href="http://freenode.net">Freenode</a>.</p>
<p>Gunicorn is released under the MIT License. See the <a class="reference external" href="http://github.com/benoitc/gunicorn/blob/master/LICENSE">LICENSE</a> for more details.</p>
<div class="section" id="features">

View File

@ -52,8 +52,8 @@
<div class="section" id="id1">
<h1>0.6.4 / 2010-03-08</h1>
<ul class="simple">
<li>Use cStringIO when it's possible (use less CPU and faster)</li>
<li>Fix worker freeze when a remote connexion close unexpectedly.</li>
<li>Use cStringIO for performance when possible.</li>
<li>Fix worker freeze when a remote connection closes unexpectedly.</li>
</ul>
</div>
<div class="section" id="id2">
@ -67,10 +67,10 @@
<h1>0.6.2 / 2010-03-01</h1>
<ul class="simple">
<li>Added support for chunked response.</li>
<li>Added possibility to configure proc_name in config file.</li>
<li>Improved HTTP parser. We now use buffers instead of strings to store temporary data.</li>
<li>Improved performance in send.</li>
<li>Workers are now murdered by age (the older is killed the first).</li>
<li>Added proc_name option to the config file.</li>
<li>Improved the HTTP parser. It now uses buffers instead of strings to store temporary data.</li>
<li>Improved performance when sending responses.</li>
<li>Workers are now murdered by age (the oldest is killed first).</li>
</ul>
</div>
<div class="section" id="id4">
@ -85,7 +85,7 @@
<h1>0.6 / 2010-02-22</h1>
<ul class="simple">
<li>Added setproctitle</li>
<li>Change privilege switch behaviour. We now works like NGINX, master keep the permission, new uid/gid permissions are only set to the workers.</li>
<li>Change privilege switch behaviour. We now work like NGINX, master keeps the permissions, new uid/gid permissions are only set for workers.</li>
</ul>
</div>
<div class="section" id="id6">

View File

@ -4,6 +4,29 @@ title: FAQ
FAQ
===
What is a slow client?
A slow client is defined as a request that can take an arbitrary amount of
time to send or read a request. Sometimes due to network performance or
because it is a malicious client attempting to cause problems. Check out
the slowloris_ script to generate slow client traffic.
What is a fast client?
Generally speaking a fast client is something that is being served over the
local network or from the same machine. This generally would refer to requests
forwarded from an upstream proxy. Also see the above FAQ for what a fast
client is not.
Why only fast clients?
By designing a web server to only handle fast clients we can greatly simplify
the implementation. Think of it as a separation of concerns where your proxy
handles talking to the big bad world of the internet and filters the requests
to your application code.
How might I test a proxy configuration?
Check out slowloris_ for a script that will generate significant slow
traffic. If your application remains responsive through out that test you
should be comfortable that all is well with your configuration.
How do I reload my application in Gunicorn?
You can gracefully reload by sending HUP signal to gunicorn::
@ -25,4 +48,9 @@ How do I set SCRIPT_NAME?
setting ``SCRIPT_NAME`` in the environment or as an HTTP header.
How to name processes?
You need to install the Python package `setproctitle <http://pypi.python.org/pypi/setproctitle>`_. Then you can name your process with `-n` or just let the default. If you use a configuration file you can set the process name with the proc_name option.
You need to install the Python package setproctitle_. Then you can name
your process with `-n` or just let the default. If you use a configuration
file you can set the process name with the proc_name option.
.. _slowloris: http://ha.ckers.org/slowloris/
.. _setproctitle: http://pypi.python.org/pypi/setproctitle

View File

@ -3,7 +3,7 @@ template: index.html
Green Unicorn
=============
Green Unicorn (gunicorn) is an HTTP/WSGI Server for UNIX designed to serve fast clients and nothing else.
Green Unicorn (gunicorn) is an HTTP/WSGI Server for UNIX designed to serve `fast clients`_ and nothing else.
This is a port of Unicorn_ in Python. Meet us on the `#gunicorn IRC channel`_ on Freenode_.
@ -24,6 +24,7 @@ Features
stream-based protocols over HTTP
- Post- and pre-fork hooks
.. _`fast clients`: faq.html
.. _Unicorn: http://unicorn.bogomips.org/
.. _`#gunicorn IRC channel`: http://webchat.freenode.net/?channels=gunicorn
.. _Freenode: http://freenode.net

View File

@ -7,8 +7,8 @@ News
0.6.4 / 2010-03-08
------------------
- Use cStringIO when it's possible (use less CPU and faster)
- Fix worker freeze when a remote connexion close unexpectedly.
- Use cStringIO for performance when possible.
- Fix worker freeze when a remote connection closes unexpectedly.
0.6.3 / 2010-03-07
------------------
@ -20,10 +20,10 @@ News
------------------
* Added support for chunked response.
* Added possibility to configure proc_name in config file.
* Improved HTTP parser. We now use buffers instead of strings to store temporary data.
* Improved performance in send.
* Workers are now murdered by age (the older is killed the first).
* Added proc_name option to the config file.
* Improved the HTTP parser. It now uses buffers instead of strings to store temporary data.
* Improved performance when sending responses.
* Workers are now murdered by age (the oldest is killed first).
0.6.1 / 2010-02-24
@ -37,7 +37,7 @@ News
------------------
* Added setproctitle
* Change privilege switch behaviour. We now works like NGINX, master keep the permission, new uid/gid permissions are only set to the workers.
* Change privilege switch behaviour. We now work like NGINX, master keeps the permissions, new uid/gid permissions are only set for workers.
0.5.1 / 2010-02-22
------------------