Django en Lighttpd + FCGI en Ubuntu: las reescrituras dejan de funcionar cuando habilito un segundo sitio

StackOverflow https://stackoverflow.com/questions/1009327

Pregunta

Tengo lighttp configurado para iniciar y servir django a través de fastcgi en ubuntu. Cuando solo tengo un solo sitio habilitado (a través del mecanismo conf-available, conf-available, similar a apache de ubuntu), todo funciona a la perfección. Cuando habilito un segundo sitio, mis reescrituras de URL parecen dejar de funcionar correctamente, aunque los procesos fcgi se inician y sirven datos. Aquí está mi configuración:

conf-available/10-example.conf

$HTTP["host"] == "example.com" {
    var.virt_name = "example"
    include "includes/incl-fastcgi.conf"
}

includes/incl-fastcgi.conf

global {
    server.modules += ("mod_rewrite",
                   "mod_fastcgi")
}

var.site_folder = "/" + virt_name
var.site_root = server_root + site_folder
var.socket = server_root + "/.handles/" + virt_name + ".socket"
server.document-root = site_root

fastcgi.server = (
    "/django.fcgi" => (
        "main" => (
            "socket" => socket,
            "bin-path" => "/etc/lighttpd/scripts/fcgi.sh",
            "bin-environment" => ( "VIRT" => virt_name, ),
            "check-local" => "disable",
            "min-procs" => 1,
            "max-procs" => 1,
            "allow-x-send-file" => "enable",
        ),
    ),
)

alias.url = (
    "/media/admin" => "/usr/share/python-support/python-django/django/contrib/admin/media", #why the hell does it live here?
)

url.rewrite-once = (
    "^(/media.*)
Page not found (404)
Request Method:     GET
Request URL:    http://example.com/django.fcgi/[the url I requested]
quot; => "$1", "^/favicon\.ico<*>quot; => "/media/favicon.ico", "^/robots\.txt<*>quot; => "/robots.txt", "^(/.*)<*>quot; => "/django.fcgi$1", )

Cuando habilito el segundo sitio, todo es idéntico, excepto que ahora hay un segundo enlace a una copia (ligeramente modificada) de 10-example.conf en conf-enabled. Cuando esto sucede, mis sitios fallan con este error servido por django:

<*>

No estoy seguro de por qué habilitar otro sitio debería romper la configuración existente. Creo que la sintaxis basada en host debería aislar cualquier cambio en ese host específico, pero no parece ser el caso.

¿Fue útil?

Solución

En caso de que alguien en el futuro vea esta pregunta, creo que la respuesta fue que se solucionó en la versión 1.4.20 o posterior y el servidor estaba ejecutando v1.4.19 ya que eso es lo que tenía el repositorio de Ubuntu.

Otros consejos

¿Estableció FORCE_SCRIPT_NAME en " ; " en settings.py?

FORCE_SCRIPT_NAME=""
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top