Задать вопрос
@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
  • Вопрос задан
  • 265 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия C++ разработчик
    11 месяцев
    Далее
  • Stepik
    Основы работы в консоли Linux, настройка сетевых служб (кластер)
    1 неделя
    Далее
  • Слёрм
    Linux для разработчиков
    2 недели
    Далее
Пригласить эксперта
Ответы на вопрос 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 ) и внутри контейнера пока ничего не делать дополнительного пока не появится второй домен
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
Principal Recruitment Москва
от 200 000 до 250 000 ₽
Principal Recruitment Москва
от 200 000 до 350 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽