У меня есть домен 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
Хотя я не знаю причины ... Любые намеки были бы хороши. Я только вчера открыл этот сервер, к тому же я новичок в сети.