diff --git a/doc/htdocs/faq.html b/doc/htdocs/faq.html index f31ef387..568ce8b6 100644 --- a/doc/htdocs/faq.html +++ b/doc/htdocs/faq.html @@ -50,6 +50,25 @@

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:

@@ -67,10 +86,12 @@ $ kill -TTOU $masterpid
 
How do I set SCRIPT_NAME?
-
By default SCRIPT_NAME is an empy string. The value could be set by -setting SCRIPT_NAME in the environment or as an HTTP header.
+
By default SCRIPT_NAME is an empy string. The value could be set by +setting SCRIPT_NAME in the environment or as an HTTP header.
How to name processes?
-
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.
+
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.
diff --git a/doc/htdocs/index.html b/doc/htdocs/index.html index cf83ca45..1b2b0c06 100644 --- a/doc/htdocs/index.html +++ b/doc/htdocs/index.html @@ -47,7 +47,7 @@

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.

Gunicorn is released under the MIT License. See the LICENSE for more details.

diff --git a/doc/htdocs/news.html b/doc/htdocs/news.html index ff8449ca..9c164974 100644 --- a/doc/htdocs/news.html +++ b/doc/htdocs/news.html @@ -52,8 +52,8 @@

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.
@@ -67,10 +67,10 @@

0.6.2 / 2010-03-01

  • 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).
@@ -85,7 +85,7 @@

0.6 / 2010-02-22

  • 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.
diff --git a/doc/site/faq.rst b/doc/site/faq.rst index 0e7f8702..01825c88 100644 --- a/doc/site/faq.rst +++ b/doc/site/faq.rst @@ -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 `_. 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. \ No newline at end of file + 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 \ No newline at end of file diff --git a/doc/site/index.rst b/doc/site/index.rst index d4985634..7e306f11 100644 --- a/doc/site/index.rst +++ b/doc/site/index.rst @@ -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 diff --git a/doc/site/news.rst b/doc/site/news.rst index 474662c9..a5530f18 100644 --- a/doc/site/news.rst +++ b/doc/site/news.rst @@ -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 ------------------