Code Monkey home page Code Monkey logo

gunicorn's Introduction

About

Gunicorn 'Green Unicorn' is a Python WSGI HTTP Server for UNIX. It's a pre-fork worker model ported from Ruby's Unicorn project. The Gunicorn server is broadly compatible with various web frameworks, simply implemented, light on server resource usage, and fairly speedy.

Feel free to join us in #gunicorn on freenode.

Build Status

Documentation

http://docs.gunicorn.org

Installation

Gunicorn requires Python 2.x >= 2.6 or Python 3.x >= 3.1.

Install from sources:

$ python setup.py install

Or from Pypi:

$ easy_install -U gunicorn

You may also want to install Eventlet or Gevent if you expect that your application code may need to pause for extended periods of time during request processing. If you're on Python 3 you may also consider one othe Asyncio workers. Check out the FAQ for more information on when you'll want to consider one of the alternate worker types.

To install eventlet:

$ easy_install -U eventlet

If you encounter errors when compiling the extensions for Eventlet or Gevent you most likely need to install a newer version of libev or libevent.

Basic Usage

After installing Gunicorn you will have access to the command line script gunicorn.

Commonly Used Arguments

  • -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 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, gthread, gaiohttp`. ``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).

    sync=gunicorn.workers.sync:SyncWorker eventlet=gunicorn.workers.geventlet:EventletWorker gevent=gunicorn.workers.ggevent:GeventWorker tornado

There are various other parameters that affect user privileges, logging, etc. You can see the complete list with the expected:

$ gunicorn -h

gunicorn

The first and most basic script is used to serve 'bare' WSGI applications 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 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:

$ cd examples
$ gunicorn --workers=2 test:app

Integration

We also provide integration for both Django and Paster applications.

Django

gunicorn just needs to be called with a the location of a WSGI application object.:

gunicorn [OPTIONS] APP_MODULE

Where APP_MODULE is of the pattern MODULE_NAME:VARIABLE_NAME. The module name should be a full dotted path. The variable name refers to a WSGI callable that should be found in the specified module.

So for a typical Django project, invoking gunicorn would look like:

gunicorn myproject.wsgi:application

(This requires that your project be on the Python path; the simplest way to ensure that is to run this command from the same directory as your manage.py file.)

You can use the --env option to set the path to load the settings. In case you need it you can also add your application path to PYTHONPATH using the --pythonpath option.

Paste

If you are a user/developer of a paste-compatible framework/app (as Pyramid, Pylons and Turbogears) you can use the gunicorn --paste option to run your application.

For example:

gunicorn --paste development.ini -b :8080 --chdir /path/to/project

It is all here. No configuration files nor additional python modules to write !!

LICENSE

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

gunicorn's People

Contributors

benoitc avatar davisp avatar tilgovi avatar berkerpeksag avatar sirkonst avatar b3no avatar jbergstroem avatar pratyk avatar matrixise avatar asvetlov avatar streeter avatar gnotaras avatar jerynmathew avatar philipcristiano avatar jeanphix avatar ifduyue avatar georgexsh avatar hongqn avatar olt avatar kennethreitz avatar daker avatar wong2 avatar wooparadog avatar wking avatar tmc avatar sholsapp avatar macro avatar mattrobenolt avatar askedrelic avatar msabramo avatar

Watchers

Huang Huang avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.