Уведомления

Группа в Telegram: @pythonsu

#1 Май 11, 2011 18:31:33

KarDer_Groom
От:
Зарегистрирован: 2009-11-17
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Настройка Django + Nginx + FastCGI

Здравствуйте.
Пытаюсь настроить 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;
}
}
Ну и в результате как написано в руководстве ввести адрес который был прописан в настройках, ничего не происходит. (Иногда после манипуляций с рестартами показывается сообщение "Welcome to nginx!")

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

В дальнейшем по этой схеме на VDS хочу развернуть готовых 2 сайта, но сначала надо разобраться хотя бы с примерами.



Офлайн

#2 Май 11, 2011 19:20:34

ta
Зарегистрирован: 2009-12-15
Сообщения: 90
Репутация: +  0  -
Профиль   Отправить e-mail  

Настройка Django + Nginx + FastCGI

пропущен пробел между fastcgi_pass и unix

Офлайн

#3 Май 11, 2011 20:49:53

KarDer_Groom
От:
Зарегистрирован: 2009-11-17
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Настройка Django + Nginx + FastCGI

Пока носом кто-то не тыкнёт, фиг дойдет. там не только там пробела не хватало, но еще в 2х местах, при копировании почему-то отступы не сохранились.
Спасибо.



Офлайн

#4 Май 12, 2011 12:14:11

KarDer_Groom
От:
Зарегистрирован: 2009-11-17
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Настройка Django + Nginx + FastCGI

В продолжении темы…
Сайт запустился, однако переход осуществляется только на главную страницу.
При этом главная страница у меня собирается из разных .html файлов, значит путь к templates указан и работает верно.
Но по переходу по ссылкам, url в адресной строке меняется, но содержание стоит на месте.

На страницу данные из БД выводятся, и paginator на страницы тоже работает, от сюда вывод что соединение с БД верное и Django также верно работает.

В чем же может быть проблема?



Офлайн

#5 Май 12, 2011 13:21:17

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Настройка Django + Nginx + FastCGI

В том что вы не правильно генерируете урлы на страницы.



Офлайн

#6 Май 12, 2011 13:43:25

KarDer_Groom
От:
Зарегистрирован: 2009-11-17
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Настройка Django + Nginx + FastCGI

Вот файл урлов 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'),
)
Поясните пожалуйста на примере. Если нужно показать ещё какой кусок кода вы скажите, не хочу загромождать.



Офлайн

#7 Май 13, 2011 09:37:16

KarDer_Groom
От:
Зарегистрирован: 2009-11-17
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Настройка Django + Nginx + FastCGI

Все решилось, и никаких ошибок не было в урлах, как заметил Александр Кошелев.
Дело было в настройках Nginx. Точнее как мне пояснили, если прописано:

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
то урл будет всегда “/”.
По этому закоментив выше прописанную строку, мы поручили рабочий сервер.
Вот результат настройки (файл /etc/nginx/fastcgi_params):
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;



Офлайн

#8 Май 13, 2011 09:43:20

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Настройка Django + Nginx + FastCGI

KarDer_Groom
Все решилось, и никаких ошибок не было в урлах, как заметил Александр Кошелев.
Ну как же. Как раз в них и была проблема. Nginx не тот урл прокидывал в бекэнд, который всегда считал что клиент смотрит корень.

А про urls.py я ничего и не говорил.



Офлайн

#9 Май 18, 2011 09:22:40

KarDer_Groom
От:
Зарегистрирован: 2009-11-17
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Настройка Django + Nginx + FastCGI

Александр Кошелев
KarDer_Groom
Все решилось, и никаких ошибок не было в урлах, как заметил Александр Кошелев.
Ну как же. Как раз в них и была проблема. Nginx не тот урл прокидывал в бекэнд, который всегда считал что клиент смотрит корень.

А про urls.py я ничего и не говорил.
А по моему всё же вы были не правы и только запутали больше чем помогли.
Подобные ответы вижу ни что иное как набивка количества сообщений на форуме, без практической пользы.

пс.. по факту ответа, обоснованного с примером, легко говорить, и настаивать что вы были правы, однако я не телепат, чтобы догадаться о чем вы думали.



Офлайн

#10 Май 18, 2011 09:42:08

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Настройка Django + Nginx + FastCGI

KarDer_Groom
пс.. по факту ответа, обоснованного с примером, легко говорить, и настаивать что вы были правы, однако я не телепат, чтобы догадаться о чем вы думали.
Ну так если не поняли, то переспросите. А вы как раз начали играть в телепата. Придумали urls.py и увидели в стеклянном шаре, что именно его я и имел ввиду.

Вам тут помочь пытаются, а вы клеймо вешаете и обижаетесь.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version