Ошибка развертывания django nginx uwsgi

Я пытаюсь развернуть простой проект Django, но все время терплю неудачу. Я следую инструкциям здесь .

Когда я использую python manage.py runserver 0.0.0.0:8000, я вижу, что мой сайт работает:

введите здесь описание изображения

В virtualenv я установил uWSGI:

pip install uwsgi

и написал test.py:

# test.py
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"] # python3
    #return ["Hello World"] # python2

При запуске uwsgi --http :8000 --wsgi-file test.py я вижу

введите здесь описание изображения

Затем я установил и запустил Nginx:

sudo apt-get install nginx
sudo /etc/init.d/nginx start

я вижу

введите здесь описание изображения

а потом написал mysite_nginx.conf:

upstream django {
    # server unix:///path/to/your/mysite/mysite.sock; # for a file socket
    server 127.0.0.1:8001; # for a web port socket (we'll use this first)
}

# configuration of the server
server {
    # the port your site will be served on
    listen      8000;
    # the domain name it will serve for
    server_name 10.211.55.21; # substitute your machine's IP address or FQDN
    charset     utf-8;

    # max upload size
    client_max_body_size 75M;   # adjust to taste

    # Django media
    #location /media  {
    #     alias /path/to/your/mysite/media;  # your Django project's media files - amend as required
    #}

    #location /static {
     #   alias /path/to/your/mysite/static; # your Django project's static files - amend as required
    #}

    # Finally, send all non-media requests to the Django server.
    location / {
        uwsgi_pass  django;
        include     /home/parallels/books/mysite/uwsgi_params; # the uwsgi_params file you installed
    }
}

потому что это всего лишь простой сайт, я закомментировал медиа и статические пути и uwsgi_params:

uwsgi_param  QUERY_STRING       $query_string;
uwsgi_param  REQUEST_METHOD     $request_method;
uwsgi_param  CONTENT_TYPE       $content_type;
uwsgi_param  CONTENT_LENGTH     $content_length;

uwsgi_param  REQUEST_URI        $request_uri;
uwsgi_param  PATH_INFO          $document_uri;
uwsgi_param  DOCUMENT_ROOT      $document_root;
uwsgi_param  SERVER_PROTOCOL    $server_protocol;
uwsgi_param  REQUEST_SCHEME     $scheme;
uwsgi_param  HTTPS              $https if_not_empty;

uwsgi_param  REMOTE_ADDR        $remote_addr;
uwsgi_param  REMOTE_PORT        $remote_port;
uwsgi_param  SERVER_PORT        $server_port;
uwsgi_param  SERVER_NAME        $server_name;

каталог:

введите здесь описание изображения

и запустите:

sudo ln -s ~/home/parallels/books/mysite/mysite_nginx.conf
/etc/nginx/sites-enabled/

Я вижу mysite_nginx.conf внутри /etc/nginx/sites-enabled/:

введите здесь описание изображения

а затем запустите:

sudo /etc/init.d/nginx restart
uwsgi --socket :8001 --wsgi-file test.py

Я ничего не вижу в своем веб-браузере:

введите здесь описание изображения

Я не знаю, почему всякий раз, когда я пытаюсь развернуть сайт Django, часть сокета дает сбой.


person Joe Lin    schedule 20.04.2016    source источник
comment
Что говорит ваш файл журнала NginX?   -  person Selcuk    schedule 20.04.2016
comment
имеет только журнал доступа, нет журнала ошибок,   -  person Joe Lin    schedule 20.04.2016
comment
как насчет uwsgi_params, что-то не так внутри?? Я просто копирую прошлое с github.com/nginx/nginx/blob/master/conf /uwsgi_params   -  person Joe Lin    schedule 20.04.2016
comment
может быть, я забыл настроить код в mysite/mysite/wsgi.py ??? Я ничего не делаю в wsgi.py   -  person Joe Lin    schedule 20.04.2016
comment
Я до сих пор не знаю, как я могу развернуть, думаю, django самая сложная часть — это развернуть, и спасибо за ваш ответ ^ ^   -  person Joe Lin    schedule 20.04.2016
comment
наконец, я использую xml для настройки uwsgi и успешного развертывания проекта django.   -  person Joe Lin    schedule 20.04.2016
comment
Вы можете опубликовать свое собственное решение в качестве ответа и принять его.   -  person Selcuk    schedule 20.04.2016
comment
да, буду, спасибо ^ ^   -  person Joe Lin    schedule 20.04.2016
comment
Возможный дубликат сбой развертывания сервера django nginx uwsgi ubuntu   -  person GwynBleidD    schedule 20.04.2016
comment
Вместо того, чтобы создавать новый вопрос, отредактируйте исходный, чтобы предоставить всю необходимую информацию.   -  person GwynBleidD    schedule 20.04.2016
comment
спасибо за ваш ответ, это головная боль для новичка в развертывании django   -  person Joe Lin    schedule 20.04.2016


Ответы (1)


Наконец, я сделал это, используя XML для настройки uWSGI и успешного развертывания проекта Django. Однако на этот раз я не использую виртуалку.

Я создал конфигурацию виртуального хоста /etc/nginx/sites-enabled/mysite:

server {
    listen   80; ## listen for ipv4; this line is default and implied
    #listen   [::]:80 default ipv6only=on; ## listen for ipv6

    server_name 10.211.55.21;

    access_log /var/log/nginx/mysite-access.log ;
    error_log /var/log/nginx/mysite-error.log ;

    location / {
            uwsgi_pass 127.0.0.1:8630;
            include uwsgi_params;
    }

}

Затем создал файл /home/parallels/books/mysite/django.xml, обратите внимание, что имя файла может быть любым, но должно заканчиваться на *.xml:

<uwsgi>
    <socket>127.0.0.1:8630</socket>
    <chdir>/home/parallels/books/mysite/mysite</chdir>
    <pythonpath>..</pythonpath>
    <module>wsgi</module>
</uwsgi>

<chdir>/home/parallels/books/mysite/mysite</chdir> просто указывает на <module>wsgi</module>, потому что wsgi.py есть в /home/parallels/books/mysite/mysite/wsgi.py.

Затем я запускаю следующие команды:

$ sudo /etc/init.d/nginx restart
$ uwsgi -x django.xml

теперь сайт доступен:

введите здесь описание изображения

Но мне не удается настроить и развернуть Django с помощью uwsgi.ini.

person Joe Lin    schedule 20.04.2016