This document attempts to discuss alternate patterns for deploying
TurboGears 2.1. It is written with the assumption that you
have at least read the Standard Deployment Pattern, as most documents
will simply discuss the differences from a standard deployment.
Note
New developers should likely use the Standard Deployment Pattern (if possible).
The choices involved in alternate installations can be daunting if you
aren’t yet familiar with the various components.
The web-server, which actually receives and processes HTTP requests
from clients and converts them to WSGI requests for your TurboGears
project, can significantly impact the performance and scalability of
your site.
paster serve production.ini – while not recommended for large
or high-traffic sites, Paste’s web-server can often serve for small
internal sites with few users. See Deploying as a Service/Daemon for a
discussion of how to keep your server running.
NGINX Web Server – an alternative asynchronous high-performance web-server
which can reverse-proxy TurboGears
Light HTTPD – has built-in FastCGI support, so can
be used to reverse-proxy TurboGears
Twisted Web2 – likely only of interest if you are already using
Twisted for your application and simply want to host a TurboGears
application within it. Twisted’s WSGI implementation is not
heavily optimized, so should not be used for high-performance sites.
MS-IIS users may want to experiment with the WSGI support from the
ISAPI-WSGI project.
If you are using SQLAlchemy (the default ORM for TurboGears 2.1),
then by-and-large your choice of database back-end is a matter of preference.
PostgreSQL – is a robust, mature, well documented
free database server which meets or exceeds most new user’s needs.
MySQL – allows you to trade robustness (ACID compliance, for instance)
for raw speed and some exotic features that are add-ons for PostgreSQL
Oracle – if your site is an Oracle shop with specialized Oracle admins
it may be appropriate to use an Oracle DB for your TurboGears application
SQLite – can be used for extremely small sites (e.g. a local web-server
intended solely to be used by a single user). It is extremely easy to
set up and comes with later versions of Python.
MSSQL – if you are already using MSSQL for your site, and have admins who
maintain the servers, it may be appropriate to use MSSQL for your TurboGears
application.