Не могу попасть на страницу Django приложения.
У меня на сервере такие порты:
Внутренний порт Внешний порт
8000 49197
Ввожу команду python manage.py runserver 0:49197, потом захожу по ссылке http://8a3851321591.vps.myjino.ru:49197/admin/ - страница не доступна. Что делаю не так?
Поддержка говорит "Внутри сервера вы запускает на порт 8000,как и ранее. А в браузер к внешнему порту подключаетесь."
Надеюсь вы понимаете, что режим runserver это только для запуска на локальной машине, в режиме разработчика?
Для запуска джанги на сервере где-то во внешнем мире, запуск через runserver не просто плохо, это табу! Нужно через (u)wsgi запускать или асинхронную версию. То есть внутри контейнера ставим nginx и через него светим 80м портом во вне. Либо вне контейнера докера слушаем nginx`ом порт контейнера и уже им во вне через 80й с самого сервера отвечаем.
Ввел python manage.py runserver 0.0.0.0:8000, перехожу на 8a3851321591.vps.myjino.ru:49197/admin - не переходит на страницу. В сеттинге ALLOWED_HOSTS = ['*']
Александр, насколько я понимаю, там у виртуалки нет своего внешнего IP и хостер пробрасывает с 81.177.6.125 порт на неё? Прямо сейчас порт 49197 не отвечает, при этом соседние порты доступны (вероятно, кидают на других клиентов). Либо виртуалка погашена, либо на ней firewall не пропускает.
Там наиболее вероятно может быть ufw, firewalld (обёртки вокруг iptables) или ванильный iptables (в теории может быть и nftables, но вряд ли) в зависимости от используемого дистрибутива и как он изначально был настроен. Вот надо в нём разрешить порт 8000.
Проверить проще всего так: iptables -L -n (из-под root, конечно) и посмотреть в Chain INPUT какой стоит policy (если DROP - режет всё что не подходит под правила) и какое правило в конце этой цепочки (может быть там DROP без условий).