It's a shame you are not using a *nix os, because you could have then
used uWSGI (http://projects.unbit.it/uwsgi/).
Feature list:
Current core features are
* written totally in C
* very fast (and simple) communication protocol for webservers
integration (apache2
<http://projects.unbit.it/uwsgi/wiki/RunOnApache2>,nginx
<http://projects.unbit.it/uwsgi/wiki/RunOnNginx>,cherokee
<http://projects.unbit.it/uwsgi/wiki/RunOnCherokee>andlighttpd
<http://projects.unbit.it/uwsgi/wiki/RunOnLighttpd>modules available)
* low memory footprint (thanks to the evil premature optimizations)
* support for multiple application in the same process/domain
* a master process manager that will allows you to automatically
respawn processes and monitor the stack status
* preforking mode to improve concurrency
* address space and rss usage reports
* advanced logging (even networked, seeUdpLogging
<http://projects.unbit.it/uwsgi/wiki/UdpLogging>)
* static file serving via sendfile() (where available)
* portability (tested on Linux 2.6, Solaris/OpenSolaris, OpenBSD,
NetBSD, DragonflyBSD, FreeBSD, MacOSX and Haiku)
* support for funny architectures like SPARC64 or ARM
* support for threads (configurable, available from 0.9.7-dev)
* cgi mode for lazy users or ugly webservers (example cgi
includedhere
<http://projects.unbit.it/uwsgi/browser/contrib/uwsgi_client.c>andhere
<http://projects.unbit.it/uwsgi/browser/contrib/uwsgi_dynamic_client.c>)
* harakiri mode for self-healing
* vector based I/O to minimize syscall usage
* hot-add of applications. SeeDynamicApps
<http://projects.unbit.it/uwsgi/wiki/DynamicApps>
* on the-fly configuration parameters. SeeManagementFlag
<http://projects.unbit.it/uwsgi/wiki/ManagementFlag>
* big (professional) user-base (hundreds of production ready wsgi
apps) thanks to its main development managed by the Italian ISP Unbit
* commercial support available (contact Unbit for informations)
* all code is under GPL2 (but you can buy a commercial license if
you want to modify it without releasing source code)
* configurable buffer size for low-memory system or to manage big
requests
* customizable builds (you can remove unneeded functionality)
* intelligent worker respawner wih no-fork-bombing policy
* limit requests per worker
* process reaper for external process managers (as daemontools).
Avoids zombie workers.
* Per-request modifier for advanced users (SeeRunOnNginx
<http://projects.unbit.it/uwsgi/wiki/RunOnNginx>for an example
usage, anduwsgiProtocol
<http://projects.unbit.it/uwsgi/wiki/uwsgiProtocol>for the
modifiers list)
* UNIX and TCP socket support
* Graceful restart of worker processes and hot-plug
substitution/upgrade of theuWSGIserver usingSignals
<http://projects.unbit.it/uwsgi/wiki/uWSGISignals>. SeeuWSGIReload
<http://projects.unbit.it/uwsgi/wiki/uWSGIReload>
* A shared memory area to share data between workers/processes.
SeeSharedArea <http://projects.unbit.it/uwsgi/wiki/SharedArea>
* An integratedSpooler
<http://projects.unbit.it/uwsgi/wiki/Spooler>for managing long
running task.
* Message exchanging (viauwsgiprotocol) for easy-implementation of
distributed applications (look atClusteredExamples
<http://projects.unbit.it/uwsgi/wiki/ClusteredExamples>)
* Get statistics of all the workers using theEmbeddedModule
<http://projects.unbit.it/uwsgi/wiki/EmbeddedModule>
* Integrated Async/EventedProxy
<http://projects.unbit.it/uwsgi/wiki/Proxy>for load-balancing and
healtchecking of big clusters (from version 0.9.5)
* Address space usage limiting (from version 0.9.5)
* integrated SNMP agent and nagios-friendly output (from version
0.9.5) SeeUseSnmp <http://projects.unbit.it/uwsgi/wiki/UseSnmp>
* VirtualHosting
<http://projects.unbit.it/uwsgi/wiki/VirtualHosting>mode (from
version 0.9.6)
* Embedded threadedHTTP server
<http://projects.unbit.it/uwsgi/wiki/HTTPserver>for easy
development and testing (from version 0.9.6)
TODO/Working on
* integrated support for wsgi middleware (is it really useful ?)
* put some more code comments to gather external developers ;)
* better anti-fork bombing policy (lesser dumb)
* advanced conditional logging (already available in 0.9.6.5, more
to come in 0.9.7)
* Linux cgroups integration (work already started in 0.9.7-dev)
seeUseCgroups <http://projects.unbit.it/uwsgi/wiki/UseCgroups>
* SSL support (with certificate client authentication) to allow
remote management of theuWSGIstack
* support for multiple listening sockets (already available in
mercurial repository, simply add more --socket options)
* Web3 (PEP-444) (already available in mercurial repository)
* IPv6 support (targeted at 0.9.7 release)
* SCTP support (experimental support is in 0.9.5 trunk, but no
performance gain, still hard work needed)
* Event Dispatcher (execute callable on external events like file
changes, bonjour/avahi/dnssd message, timers...) (work started in
0.9.6-dev, targeted at 0.9.7)
* hash table overSharedArea
<http://projects.unbit.it/uwsgi/wiki/SharedArea>(for ultra-fast
integrated caching)
* AIX, Hurd, MorphOS support (targeted at 0.9.7)
* Better Rack/RubyOnRails plugin
* Async Mode optimizations (work already started in 0.9.7-dev)
* Threading mode support (already available in mercurial repository,
simply add --threads <N> to spawn N thread cores)
* fully pluginize python support to make a total language agnostic
server (main feature of 0.9.7 release)
* Move embedded http server from threads to evented
* Add Message Queuing system (with publish/subscribe) on top of
theSpooler <http://projects.unbit.it/uwsgi/wiki/Spooler>(and
export it via STOMP protocol to third party software)
On 01/12/2010 15:26, Javier Guerra Giraldez wrote:
On Wed, Dec 1, 2010 at 6:43 AM, ashdesigner<antony.shash...@gmail.com> wrote:
The only undiscovered issue to us is whether we can launch a heavy
loaded website in Django under Windows (IIS) + MSSQL. Would appreciate
any comment please.
a WSGI plugin for IIS would be the best answer; but there's nothing
wrong with FastCGI. properly managed can sustain as high load as
anybody else.
unfortunately, the most common FastCGI->WSGI adapter (flup) is quite
good and performant; but limited in terms of dynamic process/thread
lifetime managing. a more 'modern' approach could be gunicorn or
Tornado. since both of them handle HTTP->WSGI, your IIS frontend
would have to proxy those requests, but i guess that's a standard
feature of any webserver
--
You received this message because you are subscribed to the Google Groups "Django
users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.