Назад | Перейти на главную страницу

godaddy dns + aliyun host - приложение django, uwsgi, nginx - показывает «502 Bad Gateway»

У меня есть домен mydomain.me в godaddy, я установил его так, чтобы он указывал на мой ip в aliyun ecs

В моих настройках diango у меня есть:

ALLOWED_HOSTS = [".mydomain.me","x.x.x.x"] 

в / etc / nginx / sites-avaiable / Django у меня есть

upstream django {
    server unix:/tmp/uwsgi.sock;
}

server {
    listen x.x.x.x:80;
    server_name .mydomain.me;
    location /static/ {
                include uwsgi_params;
                alias /root/DjangoApps/mydomain_me/public;
    }

    location /  {
                include uwsgi_params;
                uwsgi_pass django;

    }
}

** edit: ** для которого я сделал символическую ссылку / etc / nginx / sites-enabled / Django и удалил символическую ссылку по умолчанию.

В uwsgi.ini у меня есть

[uwsgi]
chdir = /root/DjangoApps/mydomain_me
module = mydomain_me.wsgi:application
processes = 1
threads = 1
stats = 127.0.0.1:9000
daemonize = /tmp/daemon_app
pidfile = /tmp/uwsgi.pid
chmod-socket = 777
master = True
vaccum = True
socket = /tmp/uwsgi.sock

Я запускаю это следующим образом с помощью pycharm:

ssh://root@x.x.x.x:22/opt/miniconda3/envs/DjangoApps/bin/python3.6 -u /root/DjangoApps/mydomain_me/manage.py runserver 0.0.0.0:8080 
ssh://root@x.x.x.x:22:bash 

root@mydomain:~/DjangoApps/mydomain_me# . activate DjangoApps 
(DjangoApps) root@mydomain:~/DjangoApps/mydomain_me# uwsgi uwsgi.ini 
(DjangoApps) root@mydomain:~/DjangoApps/mydomain_me# service nginx restart 

хорошо:

http://mydomain.me:8080

Это сработало!

Поздравляем с появлением первой страницы на Django.

Затем запустите свое первое приложение, запустив python manage.py startapp [app_label].

Вы видите это сообщение, потому что в вашем файле настроек Django указано DEBUG = True и вы не настроили URL-адреса. Принимайтесь за работу!

но это не так:

http://mydomain.me

с выходом:

Добро пожаловать в Nginx!

почему он не работает?

редактировать

теперь mydomain.me дает вывод:

502 Неверный шлюз

nginx / 1.10.3 (Ubuntu)

И это мои правила авторизации:

исходящий:

Allow   
Custom TCP  
8080/8080 and 80/80 and 22/22 and 3389/3389
Address Field Access    
0.0.0.0/0

входящий:

none

Что-то менять? Также мой домен указывает на IP-адрес в Интернете, а не на эластичный.

редактировать 1: cat /var/log/nginx/error.log дает мне вывод:

> 2017/08/13 03:00:34 [error] 19132#19132: *11 connect() to
> unix:/tmp/uwsgi.sock failed (111: Connection refused) while connecting
> to upstream, client: x.x.x.x, server: mydomain.me, request:
> "GET /favicon.ico HTTP/1.1", upstream:
> "uwsgi://unix:/tmp/uwsgi.sock:", host: "mydomain.me", referrer:
> "http://mydomain.me/"

И файл /tmp/uwsgi.sock существует, но когда:

cat /tmp/uwsgi.sock

он говорит:

> cat: /tmp/uwsgi.sock: No such device or address

Похоже, ваша конфигурация Nginx не связана / не включена. Если он находится в каталоге с именем sites-available, вам понадобится символическая ссылка на него из sites-enabled. редактировать /etc/nginx/nginx.conf и проверьте, из каких каталогов загружаются файлы конфигурации.

Пример символьной ссылки на конфигурацию с именем default.conf:

cd /etc/nginx/sites-enabled
sudo ln -s ../sites-available/default.conf
sudo service nginx restart

Так после

cat /tmp/daemon_app

проблема была здесь:

возможно, другой экземпляр uWSGI работает по тому же адресу (127.0.0.1:9000).

Решение - убить процесс, используя порт 9000, и снова запустить uwsgi ...

sudo fuser -k 9000/tcp && uwsgi uwsgi.ini

Хотя я не знаю причины ... Любые намеки были бы хороши. Я только вчера открыл этот сервер, к тому же я новичок в сети.