Django в Lighttpd + FCGI на Ubuntu - перезаписи перестают работать, когда я включаю второй сайт

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

Вопрос

У меня настроен lighttp для запуска и обслуживания django через fastcgi в ubuntu.Когда у меня включен только один сайт (через механизм conf-available, conf-enabled, подобный apache в ubuntu), все работает прекрасно.Когда я включаю второй сайт, кажется, что мои перезаписи URL перестают работать корректно, хотя процессы fcgi запущены и передают данные.Вот моя конфигурация:

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.*)$" => "$1",
    "^/favicon\.ico$" => "/media/favicon.ico",
    "^/robots\.txt$" => "/robots.txt",
    "^(/.*)$" => "/django.fcgi$1",
)

Когда я включаю второй сайт, все идентично, за исключением того, что теперь есть вторая ссылка на (слегка измененную) копию 10-example.conf в conf-включено.Когда это происходит, мои сайты выходят из строя из-за этой ошибки, вызванной django:

Page not found (404)
Request Method:     GET
Request URL:    http://example.com/django.fcgi/[the url I requested]

Я не уверен, почему включение другого сайта должно нарушить существующую настройку.Я считаю, что синтаксис на основе хоста должен изолировать любые изменения для этого конкретного хоста, но, похоже, это не так.

Это было полезно?

Решение

На случай, если кто-нибудь в будущем обратит внимание на этот вопрос, я полагаю, что ответ заключался в том, что это исправлено в версии 1.4.20 или более поздней, и сервер работал под управлением версии v1.4.19, поскольку это то, что было в репозитории Ubuntu.

Другие советы

Вы установили ИМЯ_СИЛЫ_СКРИПТА_ в "" в settings.py ?

FORCE_SCRIPT_NAME=""
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top