Форум сайта python.su
Здравствуйте.
Пытаюсь настроить Django + Nginx + FastCGI но упорно не выходит это сделать.
Гугл читал, создателей сайты читал, но увы очень тяжко с настройками.
ОС на сервере Ubuntu 8.04
Пытался настроить по данному руководству
Всё проходило без ошибок, только после внесения изменений конфиг nginx, после рестарта вываливалась ошибка:
Starting nginx: [emerg]: unknown directive "fastcgi_passunix:/home/django-projects/debianworld_ru/logs/django-server.sock" in /etc/nginx/sites-enabled/fastcgi.debianworld.ru:9
server {
listen 80;
server_name fastcgi.debianworld.ru;
access_log /home/django-projects/debianworld_ru/logs/nginx_access.log;
error_log /home/django-projects/debianworld_ru/logs/nginx_error.log;
# fastcgi
location / {
fastcgi_passunix:/home/django-projects/debianworld_ru/logs/django-server.sock; # Строка на которой вываливается ошибка
include fastcgi_params;
fastcgi_param PATH_INFO$fastcgi_script_name;
fastcgi_pass_headerAuthorization;
fastcgi_intercept_errors off;
}
#
location /media/ {
alias /home/django-projects/debianworld_ru/media/;
expires 30d;
}
#
location /media_admin/ {
alias /usr/lib/python2.5/site-packages/django/contrib/admin/media/;
expires 30d;
}
}
Офлайн
пропущен пробел между fastcgi_pass и unix
Офлайн
Пока носом кто-то не тыкнёт, фиг дойдет. там не только там пробела не хватало, но еще в 2х местах, при копировании почему-то отступы не сохранились.
Спасибо.
Офлайн
В продолжении темы…
Сайт запустился, однако переход осуществляется только на главную страницу.
При этом главная страница у меня собирается из разных .html файлов, значит путь к templates указан и работает верно.
Но по переходу по ссылкам, url в адресной строке меняется, но содержание стоит на месте.
На страницу данные из БД выводятся, и paginator на страницы тоже работает, от сюда вывод что соединение с БД верное и Django также верно работает.
В чем же может быть проблема?
Офлайн
В том что вы не правильно генерируете урлы на страницы.
Офлайн
Вот файл урлов urls.py
from django.conf.urls.defaults import *
from django.conf import settings
from django.views.generic.simple import direct_to_template
from registration.forms import RegistrationFormUniqueEmail
from django.contrib import admin
admin.autodiscover()
from my_blog.notes.views import Note
urlpatterns = patterns('',
(r'^$', Note),
(r'^category_([-\w\d]+)/$', 'my_blog.notes.views.Category_only'),
(r'^(?:category_[-\w\d]+/notes_([-\w\d]+)/)', 'my_blog.notes.views.Detail_notes'),
(r'^(?:notes_([-\w\d]+)/)$', 'my_blog.notes.views.Detail_notes'),
(r'^admin/', include(admin.site.urls)),
(r'^accounts/', include('registration.urls')),
(r'^accounts/profile/', direct_to_template, { 'template': 'registration/user_prifile.html' }),
(r'^comments/', include('django.contrib.comments.urls')),
url(r'^register/$', 'registration.views.register', {'form': RegistrationFormUniqueEmail}, name='registration_register'),
url('', include('registration.urls')),
(r'^tags/$', 'my_blog.notes.views.tags'),
(r'^tag/(?P<tag>[-_A-Za-zА-Яа-я0-9]+)/$', 'my_blog.notes.views.with_tag'),
(r'^tag/(?P<tag>[-_A-Za-zА-Яа-я0-9]+)/page/(?P<page>\d+)/$', 'my_blog.notes.views.with_tag'),
)
Офлайн
Все решилось, и никаких ошибок не было в урлах, как заметил Александр Кошелев.
Дело было в настройках Nginx. Точнее как мне пояснили, если прописано:
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
#fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
Офлайн
KarDer_GroomНу как же. Как раз в них и была проблема. Nginx не тот урл прокидывал в бекэнд, который всегда считал что клиент смотрит корень.
Все решилось, и никаких ошибок не было в урлах, как заметил Александр Кошелев.
Офлайн
Александр КошелевА по моему всё же вы были не правы и только запутали больше чем помогли.KarDer_GroomНу как же. Как раз в них и была проблема. Nginx не тот урл прокидывал в бекэнд, который всегда считал что клиент смотрит корень.
Все решилось, и никаких ошибок не было в урлах, как заметил Александр Кошелев.
А про urls.py я ничего и не говорил.
Офлайн
KarDer_GroomНу так если не поняли, то переспросите. А вы как раз начали играть в телепата. Придумали urls.py и увидели в стеклянном шаре, что именно его я и имел ввиду.
пс.. по факту ответа, обоснованного с примером, легко говорить, и настаивать что вы были правы, однако я не телепат, чтобы догадаться о чем вы думали.
Офлайн