Надеюсь, все из вас понимают, что на python manage.py runserver … продакшен работать не будет. Это хорошо. На самом деле ответы на все эти вопросы можно накапать в гугле.
Создавая проект на, к примеру, на перле у меня был fcgi скрипт, в котором и обрабатывались все запросы. Этот скрипт писался мной либо Catalyst сам генерил этот файл. На внешнем сервере я просто лайти указывал путь на этот файл и все. Удобно это было хотя бы тем, что лайти сам следил за тем, чтоб скрипт не отваливался и в случае необходимости доподнимал необходимое количество скриптов.
В случае джанго – вы отдельно поднимаете скрипты, указываете им сокет а лайти уже указываете на этот сокет. По крайне мере второго решения я не нашел пока, т.к. и это пока устраивает.
-
$HTTP["host"] == "yourwebsite.com" {
-
-
server.document-root = "/home/www/website/static/"
-
-
fastcgi.server = (
-
"/manage.fcgi" => (
-
"main" => (
-
# Use host / port instead of socket for TCP fastcgi
-
# "host" => "127.0.0.1",
-
# "port" => 3033,
-
"socket" => "/home/www/website/manage.sock",
-
"check-local" => "disable",
-
)
-
),
-
)
-
alias.url = (
-
"/static/" => "/home/www/website/static/",
-
)
-
-
url.rewrite-once = (
-
"^(/static.*)$" => "$1",
-
"^/favicon\.ico$" => "favicon.ico",
-
"^(/.*)$" => "/manage.fcgi$1",
-
)
-
}
Что тут происходит? Сначало направляем фаст “/manage.fcgi” на сокет “/home/www/website/manage.sock”.
В алиасах прописываем пути к вашим папкам со статикой.
Реврайты лайти проверяет поочереди. Поэтому сначала записываются статика с favicon. А потом реврайт на fastcgi. Т.е. на фаст попадают только не статические запросы.
По модулям lighttpd – проверте, чтоб у вас были активны следующие: mod_alias, mod_rewrite и mod_fastcgi
Далее скрипт, который создает непосредственно сокет. Его можно положить в папку с manage.py
-
#!/bin/bash
-
-
# Replace these three settings.
-
PROJDIR="/home/www/website/"
-
PIDFILE="$PROJDIR/manage.pid"
-
SOCKET="$PROJDIR/manage.sock"
-
-
cd $PROJDIR
-
if [ -f $PIDFILE ]; then
-
kill `cat — $PIDFILE`
-
rm -f — $PIDFILE
-
fi
-
-
./manage.py runfcgi socket=$SOCKET pidfile=$PIDFILE
-
chmod a+w $SOCKET
В принципе и скрипт и конфиг лайти, с небольшими поправками, можно нарыть в доках по джанго.
Но этого будет мало.
Во первых необходимо сразу указать в settings.py:
иначе вас ждут несколько неприятных сюрпризов с редиректами. Далее проконтролируйте урлы и пути в файле settings.py. Хотябы LOGIN_URL у вас точно должен был поменятся.
Далее выключаем дебаг, заполняем данные для отправки почты и емаил администратора. Теперь, в случае какой либо ошибки она не будет выдана пользователю, а полный дамп будет выслан вам на мыло. Ниже я привел конфигурацию, для отсылки почты через жмейловский смтипи.
-
DEBUG = False
-
-
ADMINS = (
-
('Alexander Lyabah', 'alexander@lyabah.com'),
-
)
-
-
EMAIL_HOST = 'smtp.gmail.com'
-
EMAIL_PORT = 587
-
EMAIL_HOST_USER = 'support@lyabah.com'
-
EMAIL_HOST_PASSWORD = '***'
-
EMAIL_SUBJECT_PREFIX = '[My-Web-Site]'
-
EMAIL_USE_TLS = True
Пока все… если что еще всплывет, буду еще об этом писать.
Recent Comments