Как организовать переадресацию с domen.me:port на sub.domen.me для разных сервисов?

Дано:
1) Домен, зарегистрированный в nic.ru;
2) Аккаунт на digitalocean. В настройках домена прописаны DNS`ы DO.
3) Мини-сервер дома под управлением LinuxMint (он же - рабочий компьютер)
4) На сервере уже установлены:
а) transmission-daemon :9091
б) gitlab :9000
в) wiki :9090
г) nginx :80
5) Может быть установлено всё, что угодно...

Задача:
Организовать адресацию по поддоменам для сервисов, т.е.
1) Для GIT`а domen.me:9000 -> git.domen.me
2) Transmission domen.me:9091 -> torrent.domen.me
3) Wiki domen.me:9090 -> wiki.domen.me
4) Any service domen.me:any_port -> any_service.domen.me
  • Вопрос задан
  • 442 просмотра
Пригласить эксперта
Ответы на вопрос 2
edinorog
@edinorog
Троллей не кормить!
не надо городить грабли. если вам нужно иметь доступ для работы с компами внутри локальной сети, то проще поднять впн. а через впн уже ходить до всего чего надо
Ответ написан
Комментировать
Andrew_Shtein
@Andrew_Shtein
"domain.me" - это идентификатор, который можно преобразовать в ip-адрес. Когда вы обращаетесь браузером на "domain.me", браузер на самом деле вызывает "domain.me:80", так как 80 - это порт по-умолчанию для http-протокола.
У одного ip-адреса только одна программа может занимать один порт одновременно. По-этому, когда на одной машине размещается несколько доменов, то ставят проксирующий web-сервер (nginx, например), который будет "слушать" 80-й порт, а остальные web-сервера ставят "слушать" другие порты (например 9000, 9091, 9090), т.к. 80-й занят. Проксирующий web-сервер смотрит, на какой domen идёт запрос и перенаправляет запрос на соответствующий порт.

Теперь вернёмся к вашей проблеме. Насколько я понял, то "domen.me", "git.domen.me", "torrent.domen.me", "wiki.domen.me" и т.д. преобразуются в один и тот же ip-адрес?
В таком случае, если это всё http сервисы, и под "git.domen.me" вы подразумевали "git.domen.me:80", то вам необходимо в настройках nginx прописать что-то типа:
server{
  server_name git.domen.me;
    location / {
    proxy_pass http://127.0.0.1:9000;
  }
}
server{
  server_name torrent.domen.me;
    location / {
    proxy_pass http://127.0.0.1:9091;
  }
}
server{
  server_name wiki.domen.me;
  location / {
    proxy_pass http://127.0.0.1:9090;
  }
}
server{
  server_name any_service.domen.me;
  location / {
    proxy_pass http://127.0.0.1:any_port;
  }
}
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы