@ceeed

Как мне установить домен для сервера ubuntu?

У меня есть сервер ubuntu где я в докере запускаю свое приложение на порту 8000:8000. Как мне установить купленный домен на сервере? Насколько я прочитал - нужно в конфиге, а именно в поле server_name прописать домен. Дело в том, что в конфиге есть еще название файла который должен запускаться при запуске nginx. Мне нужно чтобы я входил на сайт без порта а просто по домену. Я попробовал настроить Nginx Proxy Manager но всегда получаю 504 Gateway Time-out. Как это исправить я так и не понял.
Как я могу настроить конфиг в nginx чтобы запустить контейнер и обращаться уже на сайт по домену?
Пробовал тут : https://ru.stackoverflow.com/questions/1417113/%d0...
Настройки докера:
docker-compose.yaml


version: '3'

services:
  web:
    image: python:3.10
    volumes:
      - .:/opt/blog
    container_name: blog-web
    ports:
      - 8000:8000
    env_file: .env
    working_dir: /opt/blog
    command: /bin/bash -c "scripts/run-server.sh"


run-server.sh

#!/bin/bash

VENV=./.venv

# if not exists VENV -> create VENV
if [ ! -d $VENV ]; then
  `which python3` -m venv $VENV
  $VENV/bin/pip intsall -U pip
fi
`which python3` -m venv $VENV

# Upgrade pip
$VENV/bin/pip install -U pip
# Installing requirements from file
$VENV/bin/pip install -r requirements.txt

# Do migrate (for creating tables in the database)
$VENV/bin/python manage.py migrate
$VENV/bin/python manage.py collectstatic --no-input

# Run django
echo "Run Django"
$VENV/bin/python manage.py runserver 0.0.0.0:8000
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ответы на вопрос 1
@d-stream
Готовые решения - не подаю, но...
"купленный домен" - это скорее купленная запись в общепринятом справочнике.
то бишь все, сунувшиеся на domen.org получат справку что надо идти по ip адресу 1.2.3.4
И они пойдут
А дальше сервер на этом адресе - должен слушать обращения и отвечать.

Отсюда:
надо на сервере начать слушать обращения - то бишь 80 порт для http и 443 порт для https и переправлять это тем или иным образом приложению (которое слушает в данном случае иной порт)

Наиболее распространенные варианты - это например nginx, haproxy и т.п.

Теперь про "имя сервера": собственно никто не мешает для кучи разных доменных имён указать один и тот же ip адрес и все обращения будут прилетать к одному серверу (L3), но в каждом обращении будет фигурировать имя к которому обращались (L7) и то самое, что слушает 80/443 порт по этой информации может например передавать (проксировать) обращения например в разные приложения/контейнеры/порты

Итого: поднять на самом сервере или в контейнере nginx/haproxy и прописать в конфигах:
при обращении domen1.org - перенаправлять в контейнер на порт 8000, когда-нибудь потом добавить что при обращении к domen2.org - перенаправлять на соседний контейнер на порт например 8001

Ну или пока упростив - слушать контейнером 80/443 порт ( 80:8000 ) и внутри контейнера пока ничего не делать дополнительного пока не появится второй домен
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы