Найти - Пользователи
Полная версия: nginx + fcgi + @login_required == бесконечный редирект
Начало » Django » nginx + fcgi + @login_required == бесконечный редирект
1
V@s3K
Разворачиваю Django 1.1 на nginx'е последней версии. Делаю в первый раз, поэтому точно сверяюсь с маном, установка и настройка nginx - дело не хитрое, потом я запускаю fastcgi вот так:

python manage.py runfcgi method=threaded host=127.0.0.1 port=8881

Обращаюсь в браузере и вижу, что джанга наконец-то развернулась. Однако забавная проблема: у меня на все виды на сайте стоит @login_required, кроме одного (естественно), собственно вида enter. При обращении незалогиненным редиректит на этот enter. Но так происходит на простом runserver'е, а на развернутом nginx происходит следущее: он редиректит на /enter/?next=/, потом редиректит на /enter/?next=/enter/…. и так далее. То есть бесконечно сам на себя.

Не знаю в чем проблема. На runserver все работает, на fcgi вот такой глюк.
V@s3K
Немного дополнительной инфы:
Вот сам вид enter:
def enter(request):
auth_form = AuthenticationForm()
if request.method == 'POST':
auth_form = AuthenticationForm(request.POST)
username = request.POST.get('username', '')
password = request.POST.get('password', '')
user = auth.authenticate(username=username, password=password)

if user is not None and user.is_active:
auth.login(request, user)
return HttpResponseRedirect("/")
return render_to_response('users/enter.html', { "title": random.choice(phrases),
"form": auth_form, })
Вот так в nginx проксируется на fastcgi:
 server {
listen 80;
server_name 192.168.0.103;

location / {
fastcgi_pass 127.0.0.1:8881;
include fastcgi_params;
}

location /media {
alias /home/server/devel/media;
}
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB