Skip to content

Commit

Permalink
Fix Slowloris broken link. Close benoitc#1142
Browse files Browse the repository at this point in the history
  • Loading branch information
molivier committed Dec 14, 2015
1 parent 123e0a5 commit 37b461e
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 6 deletions.
4 changes: 2 additions & 2 deletions docs/source/deploy.rst
Expand Up @@ -11,7 +11,7 @@ Although there are many HTTP proxies available, we strongly advise that you
use Nginx_. If you choose another proxy server you need to make sure that it
buffers slow clients when you use default Gunicorn workers. Without this
buffering Gunicorn will be easily susceptible to denial-of-service attacks.
You can use slowloris_ to check if your proxy is behaving properly.
You can use Boom_ to check if your proxy is behaving properly.

An `example configuration`_ file for fast clients with Nginx_:

Expand Down Expand Up @@ -266,7 +266,7 @@ utility::
kill -USR1 $(cat /var/run/gunicorn.pid)

.. _Nginx: http://www.nginx.org
.. _slowloris: http://ha.ckers.org/slowloris/
.. _Boom: https://github.com/rakyll/boom
.. _`example configuration`: http://github.com/benoitc/gunicorn/blob/master/examples/nginx.conf
.. _runit: http://smarden.org/runit/
.. _`example service`: http://github.com/benoitc/gunicorn/blob/master/examples/gunicorn_rc
Expand Down
4 changes: 2 additions & 2 deletions docs/source/design.rst
Expand Up @@ -75,7 +75,7 @@ servers.
This resource bound assumption is why we require a buffering proxy in front of a
default configuration Gunicorn. If you exposed synchronous workers to the
internet, a DOS attack would be trivial by creating a load that trickles data to
the servers. For the curious, Slowloris_ is an example of this type of load.
the servers. For the curious, Boom_ is an example of this type of load.

Some examples of behavior requiring asynchronous workers:

Expand Down Expand Up @@ -126,5 +126,5 @@ the master process).
.. _Greenlets: https://github.com/python-greenlet/greenlet
.. _Eventlet: http://eventlet.net
.. _Gevent: http://gevent.org
.. _Slowloris: http://ha.ckers.org/slowloris/
.. _Boom: http://ha.ckers.org/slowloris/
.. _aiohttp: https://github.com/KeepSafe/aiohttp
8 changes: 6 additions & 2 deletions docs/source/faq.rst
Expand Up @@ -27,9 +27,13 @@ You can gracefully reload by sending HUP signal to gunicorn::
How might I test a proxy configuration?
---------------------------------------

The Slowloris_ script is a great way to test that your proxy is correctly
The Boom_ program is a great way to test that your proxy is correctly
buffering responses for the synchronous workers.

boom -n 10000 -c 100 http://127.0.0.1:5000/

This runs a benchmark of 10000 requests with 100 running concurrently.

How can I name processes?
-------------------------

Expand All @@ -47,7 +51,7 @@ HTTP/1.0 with its upstream servers. If you want to deploy Gunicorn to
handle unbuffered requests (ie, serving requests directly from the internet)
you should use one of the async workers.

.. _slowloris: http://ha.ckers.org/slowloris/
.. _Boom: https://github.com/rakyll/boom
.. _setproctitle: http://pypi.python.org/pypi/setproctitle
.. _proc_name: settings.html#proc-name

Expand Down

0 comments on commit 37b461e

Please sign in to comment.