Развертывание Django с UWSGI и NGINX, UWSGI в порядке, но NGINX не работает - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь запустить свой сайт, когда я запускаю

uwsgi --socket 0.0.0.0:8080 --protocol=http --chdir /opt/virtualenv/landivarpj/ --wsgi-file /opt/virtualenv/landivarpj/landivarpj/wsgi.py 

, я могу получить доступ к 192.xxx.xxx.xxx:8080 в порядке, и мой тестовый текст появляется, но если я пытаюсь пойти не так 192.xxx.xxx.xxx Я получаю только страницу приветствия nginx, и если я пытаюсь зайти в мой домен www.xxxxxxxx.com, то он вообще не работает.

в папке моего проекта (opt /virtualenv / landivarpj) у меня есть файл uswgi_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;

, затем в (opt / virtualenv / landivarpj / landivarpj) файл wsgi.py равен

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "landivarpj.settings")

application = get_wsgi_application()

в etc / nginx / sites-available is have drlandivar.conf

upstream django {
    server 192.xxx.xxx.xxx:8080; # for a web port socket (we'll use this first)
}

server {
    listen      80;
    server_name drlandivar.com www.drlandivar.com;
    charset     utf-8;

    client_max_body_size 75M;   # adjust to taste

    location /media  {
        alias /opt/virtualenv/landivarpj/media;  
    }

    location /static {
        alias /opt/virtualenv/landivarpj/static; 
    }

    location / {
        uwsgi_pass  django;
        include     /opt/virtualenv/landivarpj/uwsgi_params; 
    }
}

Сайт-доступ и сайт-ссылка связаны

Что я сделал не так, почему он работает на 192.xxx.xxx.xxx:8080но не проблема домена и nginx

***** новое редактирование, как рекомендовано на nginx / availables-site / drlandivar.conf

upstream django {
    server 192.254.145.207:8080;
}

server {
    listen      80;
    server_name drlandivar.com www.drlandivar.com;
    charset     utf-8;

    client_max_body_size 75M;   # adjust to taste

    location /media  {
        alias /opt/virtualenv/landivarpj/media;  
    }

    location /static {
        alias /opt/virtualenv/landivarpj/static; 
    }

    location / {
        proxy_pass  http://django;
    }
}

, оно все еще дает мне ту же проблему, только загрузка страницыTrought 192.xxx.xxx.xxx:8080 не проблема drlandivar.com, пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Сравнивая ваш с рабочим примером моего, выделяется одна вещь.Попробуйте

...
location / {
    include uwsgi_params;
    proxy_pass http://django;
}

Добавление --logto /var/log/uwsgi/uwsgi.log к вашему вызову uwsgi (после создания /var/log/uswgi и создания возможности записи для процесса uwsgi) может пролить дополнительный свет.

0 голосов
/ 24 октября 2018

Вам нужно proxy_pass вместо этого.Следующая конфигурация должна помочь.

upstream django {
    server 192.254.145.207:8080;
}

server {

    ...

    location / {
        proxy_pass  http://django;
    }
}
...