diff --git a/doc/htdocs/usage.html b/doc/htdocs/usage.html index 0582749e..f2843163 100644 --- a/doc/htdocs/usage.html +++ b/doc/htdocs/usage.html @@ -50,27 +50,27 @@
After installing Gunicorn you will have access to three command line scripts -that can be used for serving the various supported web frameworks: gunicorn, -gunicorn_django, and gunicorn_paster.
+that can be used for serving the various supported web frameworks: gunicorn, +gunicorn_django, and gunicorn_paster.-
- -c CONFIG, --config=CONFIG - Specify the path to a config file
-- -b BIND, --bind=BIND - Specify a server socket to bind. Server sockets -can be any of $(HOST), $(HOST):$(PORT), or unix:$(PATH). -An IP is a valid $(HOST).
-- -w WORKERS, --workers=WORKERS - The number of worker processes. This +
- -c CONFIG, --config=CONFIG - Specify the path to a config file
+- -b BIND, --bind=BIND - Specify a server socket to bind. Server sockets +can be any of $(HOST), $(HOST):$(PORT), or unix:$(PATH). +An IP is a valid $(HOST).
+- -w WORKERS, --workers=WORKERS - The number of worker processes. This number should generally be between 2-4 workers per core in the server. Check the FAQ for ideas on tuning this parameter.
-- -k WORKERCLASS, --worker-class=WORKERCLASS - The type of worker process +
- -k WORKERCLASS, --worker-class=WORKERCLASS - The type of worker process to run. You'll definitely want to read the production page for the implications of this parameter. You can set this to egg:gunicorn#$(NAME) -where $(NAME) is one of sync, eventlet, gevent, or -tornado. sync is the default.
-- -n APP_NAME, --name=APP_NAME - If setproctitle is installed you can +where $(NAME) is one of sync, eventlet, gevent, or +tornado. sync is the default.
+- -n APP_NAME, --name=APP_NAME - If setproctitle is installed you can adjust the name of Gunicorn process as they appear in the process system -table (which affects tools like ps and top).
+table (which affects tools like ps and top).
There are various other parameters that affect user privileges, logging, etc. @@ -86,7 +86,7 @@ that don't require a translation layer. Basic usage:
$ gunicorn [OPTIONS] APP_MODULE-
Where APP_MODULE is of the pattern $(MODULE_NAME):$(VARIABLE_NAME). The +
Where APP_MODULE is of the pattern $(MODULE_NAME):$(VARIABLE_NAME). The module name can be a full dotted path. The variable name refers to a WSGI callable that should be found in the specified module.
Example with test app:
@@ -102,7 +102,7 @@ applications. Basic usage:$ gunicorn_django [OPTIONS] [SETTINGS_PATH]-
By default SETTINGS_PATH will look for settings.py in the current +
By default SETTINGS_PATH will look for settings.py in the current directory.
Example with your Django project:
@@ -111,7 +111,7 @@ $ gunicorn_django --workers=2
Alternatively, you can install some Gunicorn magic directly into your Django project and use the provided command for running the server.
-First you'll need to add gunicorn to your INSTALLED_APPS in the settings +
First you'll need to add gunicorn to your INSTALLED_APPS in the settings file:
INSTALLED_APPS = ( @@ -184,6 +184,45 @@ Options: -h, --help show this help message and exit
This is an incomplete list of examples of using Gunicorn with various +Python web frameworks. If you have an example to add you're very much +invited to submit a ticket to the issue tracker to have it included.
+Itty comes with builtin Gunicorn support. The Itty "Hello, world!" looks +like such:
+
+from itty import *
+
+@get('/')
+def index(request):
+ return 'Hello World!'
+
+run_itty(server='gunicorn')
+
+Flask applications are WSGI compatible. Given this Flask app in an importable +Python module "helloflask.py":
+
+from flask import Flask
+app = Flask(__name__)
+
+@app.route("/")
+def hello():
+ return "Hello World!"
+
+Gunicorn can then be used to run it as such:
++$ gunicorn helloflask:app ++
Remember, if you're just trying to get things up and runnign that "importable" +can be as simple as "exists in the current directory".
+