Navigation

The uWSGI project¶

The uWSGI project aims at developing a full stack for building (and hosting) clustered/distributed network applications.

Mainly targeted at the web and its standards, it has been successfully used in a lot of different contexts.

Thanks to its pluggable architecture it can be extended without limits to support more platforms and languages. Currently, you can write plugins in C, C++ and Objective-C.

The “WSGI” part in the name is a tribute to the namesake Python standard, as it has been the first developed plugin for the project.

Versatility, performance, low-resource usage and reliability are the strengths of the project (and the only rules followed).

Included components (updated to latest stable release)¶

The Core (implements configuration, processes management, sockets creation, monitoring, logging, shared memory areas, ipc, cluster membership and the SubscriptionSystem)

Request plugins (implement application server interfaces for various languages and platforms: WSGI, PSGI, Rack, Lua WSAPI, CGI, PHP, Go ...)

Gateways (implement load balancers, proxies and routers)

The Emperor (implements massive instances management and monitoring)

Loop engines (implement concurrency, components can be run in preforking, threaded, asynchronous/evented and green thread/coroutine modes. Various technologies are supported, including uGreen, Greenlet, Stackless, Gevent, Goroutines and Fibers)

Note

With a large open source project such as uWSGI the code and the documentation may not always be in sync. The mailing list is the best source for help regarding uWSGI.

Table of Contents¶

  • Getting uWSGI
  • Installing uWSGI
  • Managing the uWSGI server
  • Supported languages and platforms
  • Web server integration
  • Frequently Asked Questions (FAQ)
  • Things to know (best practices and “issues”)
  • Configuring uWSGI
  • Configuration logic
  • Configuration Options
  • Defining new options for your instances
  • uwsgi protocol magic variables
  • The uwsgi Protocol
  • Managing external daemons/services with uWSGI (1.3.1)
  • Management Flags
  • Socket activation with inetd/xinetd
  • Running uWSGI via Upstart
  • Embedding an application in uWSGI
  • Glossary

uWSGI Subsystems¶

  • The uWSGI alarm subsystem (from 1.3)
  • The uWSGI caching framework
  • The uWSGI cron-like interface
  • The uWSGI FastRouter
  • uWSGI internal routing
  • The uWSGI Legion subsystem (1.5-dev)
  • Locks
  • uWSGI Mules
  • The uWSGI offloading subsystem (1.4-rc2)
  • The uWSGI queue framework
  • uWSGI RPC Stack
  • SharedArea – share data between workers
  • The uWSGI Signal Framework
  • The uWSGI Spooler
  • uWSGI Subscription Server

Scaling with uWSGI¶

  • The uWSGI cheaper subsystem – adaptive process spawning
  • The uWSGI Emperor – multi-app deployment
  • Auto-scaling with Broodlord mode
  • Zerg mode
  • Adding applications dynamically
  • Scaling SSL connections (uWSGI 1.5-dev)

Securing uWSGI¶

  • Setting POSIX Capabilities
  • Running uWSGI in a Linux CGroup
  • Using Linux KSM in uWSGI
  • Jailing your apps using Linux Namespaces

Keeping an eye on your apps¶

  • Monitoring uWSGI with Nagios
  • The embedded SNMP server
  • Pushing statistics (from 1.4)
  • Integration with Graphite/Carbon
  • The uWSGI Stats Server

Async and loop engines¶

  • uWSGI asynchronous/nonblocking modes (updated to uWSGI 1.9)
  • The Gevent loop engine

Web Server support¶

  • Apache support
  • Cherokee support
  • Native HTTP support
  • Lighttpd support
  • Attaching uWSGI to Mongrel2
  • Nginx support

Language support¶

  • Python support
    • The uwsgi Python module
    • uWSGI API - Python decorators
    • Pump support
    • Python Tracebacker
    • Aliasing Python modules
    • Application dictionary
    • Virtualenv support
    • Paste support
    • Using the uwsgi_admin Django app
  • Running PHP scripts in uWSGI
    • Building
    • Running PHP apps with nginx
    • Advanced configuration
    • Run PHP apps without a frontend server
    • uWSGI API support
  • uWSGI Perl support (PSGI)
    • Compiling the PSGI plugin
    • Usage
    • Tested PSGI frameworks/applications
    • Multi-app support
    • Notes
    • Real world example, HTML::Mason
  • Ruby support
    • Ruby API support
    • Building uWSGI for Ruby support
    • A note regarding memory consumption
    • A note regarding threads and fibers
    • Running Rack applications on uWSGI
    • Running Ruby on Rails applications on uWSGI
  • Using Lua/WSAPI with uWSGI
    • Compilation notes
    • Your first WSAPI application
    • Abusing coroutines
    • Threading
    • A note on memory
  • Integrating uWSGI with Erlang
    • Building
    • Activating Erlang support
    • A simple RPC hello world example
    • Python-Erlang mappings
    • Sending messages to Erlang nodes
    • Receiving erlang messages
    • RPC
    • Connection persistence
    • What about Mnesia?
    • Can I run EWGI applications on top of uWSGI?
  • JVM in the uWSGI server
    • The JWSGI interface
  • Running CGI scripts on uWSGI
    • Enabling the plugin
    • Configuring CGI mode
    • Notes
    • Examples
  • uWSGI Go support (1.4-dev)
    • Building uWSGI with Go support
    • Writing the first Go application
    • Building your first app
    • Going in production
    • Goroutines (currently Linux/FreeBSD-only)
    • uWSGI api
    • Running from the Emperor
    • Notes

Contact¶

Mailing list lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
Gmane mirror dir.gmane.org/gmane.comp.python.wsgi.uwsgi.general
IRC #uwsgi @ irc.freenode.org. The owner of the channel is unbit.
Twitter twitter.com/unbit

.

Indices and tables¶

  • Index
  • Module Index
  • Search Page

Project Versions

Table Of Contents

  • The uWSGI project
  • Included components (updated to latest stable release)
  • Table of Contents
  • uWSGI Subsystems
  • Scaling with uWSGI
  • Securing uWSGI
  • Keeping an eye on your apps
  • Async and loop engines
  • Web Server support
  • Language support
  • Contact
  • Donate
  • Indices and tables

Next topic

Getting uWSGI

This Page

  • Show Source
  • Show on GitHub
  • Edit on GitHub

Navigation

© Copyright 2012, uWSGI. Created using Sphinx 1.1.2.
Brought to you by Read the Docs
gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.