- The uWSGI project
- Included components (updated to latest stable release)
- Quickstarts
- Table of Contents
- Tutorials
- Articles
- uWSGI Subsystems
- Scaling with uWSGI
- Securing uWSGI
- Keeping an eye on your apps
- Async and loop engines
- Web Server support
- Language support
- Other plugins
- Broken/deprecated features
- Release Notes
- Contact
- Commercial support
- Donate
- Sponsors
- Indices and tables
The uWSGI project
The uWSGI project aims at developing a full stack for building hosting services.
Application servers (for various programming languages and protocols), proxies, process managers and monitors are all implementedusing a common api and a common configuration style.
Thanks to its pluggable architecture it can be extended 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 uWSGI Subscription Server)
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 events and concurrency, components can be run in preforking, threaded, asynchronous/evented and green thread/coroutine modes. Various technologies are supported, including uGreen, Greenlet, Stackless, Gevent, Coro::AnyEvent, Tornado, Goroutines and Fibers)
Note
uWSGI is a very active project with a fast release cycle. For this reason the code and the documentation may not always be in sync.We try our best to have good documentation, but it is a hard work. Sorry for that.If you are in trouble, the mailing list is the best source for help regarding uWSGI.Contributors for documentation (in addition to code) are always welcome.
Quickstarts
- Quickstart for Python/WSGI applications
- Quickstart for perl/PSGI applications
- Quickstart for ruby/Rack applications
- Snippets
Table of Contents
- Getting uWSGI
- Installing uWSGI
- The uWSGI build system
- Managing the uWSGI server
- Supported languages and platforms
- Supported Platforms/Systems
- Web server integration
- Frequently Asked Questions (FAQ)
- Things to know (best practices and “issues”) READ IT !!!
- Configuring uWSGI
- Fallback configuration
- Configuration logic
- uWSGI Options
- Defining new options for your instances
- How uWSGI parses config files
- uwsgi protocol magic variables
- The uwsgi Protocol
- Managing external daemons/services
- The Master FIFO
- Socket activation with inetd/xinetd
- Running uWSGI via Upstart
- Systemd
- Running uWSGI instances with Circus
- Embedding an application in uWSGI
- Logging
- Formatting uWSGI requests logs
- Log encoders
- Hooks
- Overriding Workers
- Glossary
- uWSGI third party plugins
Tutorials
- The uWSGI Caching Cookbook
- Setting up Django and your web server with uWSGI and nginx
- Running uWSGI on Dreamhost shared hosting
- Running python webapps on Heroku with uWSGI
- Running Ruby/Rack webapps on Heroku with uWSGI
- Reliably use FUSE filesystems for uWSGI vassals (with Linux)
- Build a dynamic proxy using RPC and internal routing
- Setting up Graphite on Ubuntu using the Metrics subsystem
Articles
- Serializing accept(), AKA Thundering Herd, AKA the Zeeg Problem
- The Art of Graceful Reloading
- Fun with Perl, Eyetoy and RaspberryPi
- Offloading Websockets and Server-Sent Events AKA “Combine them with Django safely”
- WSGI env behaviour policies
uWSGI Subsystems
- The uWSGI alarm subsystem (from 1.3)
- The uWSGI caching framework
- WebCaching framework
- The uWSGI cron-like interface
- The uWSGI FastRouter
- uWSGI internal routing
- The uWSGI Legion subsystem
- Locks
- uWSGI Mules
- The uWSGI offloading subsystem
- The uWSGI queue framework
- uWSGI RPC Stack
- SharedArea – share memory pages between uWSGI components
- The uWSGI Signal Framework
- The uWSGI Spooler
- uWSGI Subscription Server
- Serving static files with uWSGI (updated to 1.9)
- SNI - Server Name Identification (virtual hosting for SSL nodes)
- The GeoIP plugin
- uWSGI Transformations
- WebSocket support
- The Metrics subsystem
- The Chunked input API
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.9)
Securing uWSGI
- Setting POSIX Capabilities
- Running uWSGI in a Linux CGroup
- Using Linux KSM in uWSGI
- Jailing your apps using Linux Namespaces
- The old way: the –namespace option
- FreeBSD Jails
- The Forkpty Router
- The TunTap Router
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
- The Metrics subsystem
Async and loop engines
- uWSGI asynchronous/non-blocking modes (updated to uWSGI 1.9)
- The Gevent loop engine
- The Tornado loop engine
- uGreen – uWSGI Green Threads
- The asyncio loop engine (CPython >= 3.4, uWSGI >= 2.0.4)
Web Server support
- Apache support
- Cherokee support
- Native HTTP support
- HTTPS support (from 1.3)
- The SPDY router (uWSGI 1.9)
- Lighttpd support
- Attaching uWSGI to Mongrel2
- Nginx support
- Using OpenBSD httpd as proxy
- Notes
Language support
- Python support
- The PyPy plugin
- Running PHP scripts in uWSGI
- uWSGI Perl support (PSGI)
- Ruby support
- Using Lua/WSAPI with uWSGI
- JVM in the uWSGI server (updated to 1.9)
- The Mono ASP.NET plugin
- Running CGI scripts on uWSGI
- The GCCGO plugin
- The Symcall plugin
- The XSLT plugin
- SSI (Server Side Includes) plugin
- uWSGI V8 support
- The GridFS plugin
- The GlusterFS plugin
- The RADOS plugin
Other plugins
Broken/deprecated features
Release Notes
Stable releases
- uWSGI 2.0.18
- uWSGI 2.0.17.1
- uWSGI 2.0.17
- uWSGI 2.0.16
- uWSGI 2.0.15
- uWSGI 2.0.14
- uWSGI 2.0.13.1
- uWSGI 2.0.13
- uWSGI 2.0.12
- uWSGI 2.0.11.2
- uWSGI 2.0.11.1
- uWSGI 2.0.11
- uWSGI 2.0.10
- uWSGI 2.0.9
- uWSGI 2.0.8
- uWSGI 2.0.7
- uWSGI 2.0.6
- uWSGI 2.0.5
- uWSGI 2.0.4
- uWSGI 2.0.3
- uWSGI 2.0.2
- uWSGI 2.0.1
- uWSGI 2.0
- uWSGI 1.9.21
- uWSGI 1.9.20
- uWSGI 1.9.19
- uWSGI 1.9.18
- uWSGI 1.9.17
- uWSGI 1.9.16
- uWSGI 1.9.15
- uWSGI 1.9.14
- uWSGI 1.9.13
- uWSGI 1.9.12
- uWSGI 1.9.11
- uWSGI 1.9.10
- uWSGI 1.9.9
- uWSGI 1.9.8
- uWSGI 1.9.7
- uWSGI 1.9.6
- uWSGI 1.9.5
- uWSGI 1.9.4
- uWSGI 1.9.3
- uWSGI 1.9.2
- uWSGI 1.9.1
- uWSGI 1.9
Contact
Mailing list | http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi |
Gmane mirror | http://dir.gmane.org/gmane.comp.python.wsgi.uwsgi.general |
IRC | #uwsgi @ irc.freenode.org. The owner of the channel is unbit. |
https://twitter.com/unbit | |
Commercial support | http://unbit.com/ |
.
Commercial support
You can buy commercial support from http://unbit.com
Donate
uWSGI development is maintained by Unbit . You can buy commercial support and licensing. If you are not an Unbit customer, or you cannot/do not want to buy a commercial uWSGI license, consider making a donation. Obviously please feel free to ask for new features in your donation.
We will give credit to everyone who wants to sponsor new features.
Check http://unbit.it/uwsgi_donate for the donation link.
Sponsors
https://www.pythonanywhere.com/