$SERVER["socket"] == "0.0.0.0:8888" { server.document-root = "/srv/www/django/htdocs" url.access-deny = ( "~", ".inc", ".svn/" ) fastcgi.server = ( "/dispatch.fcgi" => ( "main" => ( "socket" => "/srv/www/django/run/fcgi.sock", "bin-path" => "/srv/www/django/manage.py runfcgi --pythonpath=/srv/www/django --settings=djangoapp.settings-production method=threaded", "max-procs" => 2, "check-local" => "disable", "fix-root-scriptname" => "enable", ) ), ) alias.url = ( "/static" => "/srv/www/django/htdocs", ) url.rewrite-once = ( "^(/static.*)$" => "$1", "^/favicon\.ico$" => "/static/favicon.ico", "^(/.*)$" => "/dispatch.fcgi$1" ) }
Предполагается, что проект лежит в /srv/www/django/, где для него существует рабочая версия настроек в файле settings-production.py. lighttpd сам запустит fcgi-сервер в количестве max-procs экземпляров. Опция check-local необходима для того, чтобы отключить проверку существования файлов на локальной машине, которую делает lighttpd; так как запрашиваемые URL существуют лишь в логике django, а не в файловой системе.
Для правильной работы тегов типа {% url %} необходимо добавить строчку FORCE_SCRIPT_NAME = '' в настройки проекта написанного на django, иначе ко всем ссылкам в начало будет добавляться название /dispatch.fcgi.