2017-02-06 15 views
1

я хочу, чтобы запустить Джанго с Nginx я следовал за этим instructions иДжанго с Nginx uwsgi плохой шлюз 502

/и т.д./Nginx/сайты-доступные/cartoview_one

upstream django { 
    server unix:///root/cartoview_project/mysite.sock; # for a file socket } 

server { 
    listen  80; 
    server_name xx.xx.xx.xx; 
    charset  utf-8; 

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

    # Django media 
    location /media { 
     alias /root/cartoview_project/uploaded; 
    } 

    location /static { 
     alias /root/cartoview_project/static; 
    } 
    location/{ 
     uwsgi_pass django; 
     include  /root/cartoview_project/uwsgi_params; # the uwsgi_params file you installed 
    } 
} 

затем создал символическая с помощью:

sudo ln -s /etc/nginx/sites-available/cartoview_one /etc/nginx/sites-enabled 

и в папке проекта mysite_uwsgi.ini:

[uwsgi] 
project = cartoview_project 
chdir   = /root/cartoview_project 
module   = %(project).wsgi:application 
home   = /root/env 
master   = true 
processes  = 10 
socket   = /root/cartoview_project/mysite.sock 
chmod-socket = 666 
vacuum   = true 
http-socket = 0.0.0.0:80 

структура проекта:

. 
|-- apps 
|-- cartoview_project 
| |-- __init__.py 
| |-- __init__.pyc 
| |-- local_settings.py 
| |-- local_settings.pyc 
| |-- local_settings.py.sample 
| |-- settings.py 
| |-- settings.pyc 
| |-- urls.py 
| |-- wsgi.py 
| `-- wsgi.pyc 
|-- default_oauth_apps.json 
|-- initial_data.json 
|-- manage.py 
|-- mysite_uwsgi.ini 
`-- uwsgi_params 

, когда я пытаюсь получить доступ к веб-сайт с MyIP это сообщение появляется:

502 Bad Gateway

Nginx/1,10. 0 (Ubuntu)

error.log:

2017/02/06 09:46:41 [крит] 6867 # 6867: 1 * подключить() для UNIX: /// корень/cartoview_project/MySite. sock failed (13: ). При подключении к восходящему потоку клиент: xx.xx.xxx.xxx, сервер: xxx.xxx.xxx.xxx, запрос: «GET/HTTP/1.1», вверх по течению: «uwsgi : // Unix: ///root/cartoview_project/mysite.sock:»хозяин: "xxx.xxx.xxx.xxx"

Update:

i удален http-socket и введите следующую команду /root/env/bin/uwsgi --ini mysite_uwsgi.ini и mysite.sock, а затем перезапустите nginx, но ничего не изменилось.

:~/cartoview_project# stat mysite.sock 
    File: 'mysite.sock' 
    Size: 0    Blocks: 0   IO Block: 4096 socket 
Device: 802h/2050d  Inode: 17172079 Links: 1 
Access: (0666/srw-rw-rw-) Uid: ( 0/ root) Gid: ( 0/ root) 
Access: 2017-02-06 10:44:56.188168371 +0100 
Modify: 2017-02-06 10:44:56.188168371 +0100 
Change: 2017-02-06 10:44:56.188168371 +0100 
Birth: - 

машины: VPS (Ubuntu 16.04) Пользователь: корень

Решаемые: путем изменения include /root/cartoview_project/uwsgi_params к include /etc/nginx/uwsgi_params;

+0

Вы можете использовать эту команду для запуска своего приложения в бэкэнде в производстве с uwsgi 'uwsgi --http 0.0.0.0:8134 --wsgi-файл UniservedWebsite/wsgi.py &' и ссылаться на ваш nginx на '0.0.0.0: 8134' и добавьте 'http-timeout' –

ответ

0

Из описания, это выглядит, как вы не запустить процесс uwsgi - ошибка 502 в этой точке означает, что nginx передает ответ правильно, но нет ничего, что могло бы подключить к, или он не получит правильный ответ.

which uwsgi предоставит вам путь к соответствующему uwsgi (сделайте это в своем виртуальном пространстве, если вы его используете).

например.

/root/cartoview_project/uwsgi --ini mysite_uwsgi.ini

Вы должны взять переменную http-socket конфигурации из uwsgi хотя - Nginx прослушивает порт 80, и передать его на ваш .sock файл, созданный вашим uwsgi приложение.

+0

i удалил' http-socket' и запустил следующую команду '/ root/env/bin/uwsgi -ini mysite_uwsgi.ini' и перезапустил nginx, но ничего не изменилось:' mysite.sock 'появился в проекте – Hisham

+0

Действительно ли wsgi работает? Проверьте наверху. Если вы запустите 'stat' в своем файле' mysite.sock', какой пользователь/группа и разрешения вы получите? – Withnail

+0

посмотреть http://imgur.com/a/IJpAf – Hisham

 Смежные вопросы

  • Нет связанных вопросов^_^