L
L
LittleBuster2014-10-13 21:18:02
Django
LittleBuster, 2014-10-13 21:18:02

Django + fastcgi + nginx how to make it work?

Configured like this:
File nginx.conf

user http;
worker_processes 1;

events {
    worker_connections 1024;
}

http {
    include mime.types;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;

    server {
        listen 80;
        server_name localhost;
        charset utf-8;
        access_log logs/cool.access.log;
        client_max_body_size 300m;

        location / {
            # эти параметры мы укажем потом и при запуске Django-fastcgi
            fastcgi_pass 127.0.0.1:8881;
            include fastcgi_params;
        }

        # статическое содержимое проекта
        location /static/ {
            alias /home/soulless/src/django/mysite/static/;
            expires 30d;
        }
        # статическое содержимое админки
        location /media/ {
            alias /usr/lib/python2.6/site-packages/django/contrib/admin/media/;
            expires 30d;
        }
    }
}

FILE fastcgi.conf
fastcgi_param  SCRIPT_FILENAME    $document_root$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;

./manage.py runfcgi method=prefork host=127.0.0.1 port=8881 pidfile=/tmp/server.pid maxchildren=10
Displays the index page nicely, with all images from the media. But not one link handled by django is broken. Those. not a single page from the urls opens - just nothing happens, the index page remains hanging and the path changes in the address bar.

Answer the question

In order to leave comments, you need to log in

2 answer(s)
B
bromzh, 2014-10-14
@bromzh

Why fastcgi? This is not PHP, take a normal Python web server. Here , for example, with detailed instructions.
UPD. Here are the benchmarks .

V
Valentine, 2014-10-13
@vvpoloskin

I'm looking at the official doc and I see that there is no PATH_INFO

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question