Как опубликовать rest приложение в ubuntu с локального ПК в интернет?

Текст курсивом не имеем прямого отношения к вопросу.

Я немного нарушу рекомендации по заведению вопроса. Если эту часть вопроса кто-то удалит - ни в коем случае не обижусь, но мне кажется, что это важно. Я опытный java программист, но далеко не DevOps. Года 2 мечтал выдать что-то вовне с локального ПК, но не хватало знаний. Есть два вопроса на этом ресурсе, которые мне здорово помогли: Java: Клиент не коннектится к серверу по внешнему IP, Как опубликовать локальный сервер?. Т.е. удовлетворяющее решение я нашёл на этом сайте, пока писал вопрос. Минутка благодарности. Далее по сути.

Сделано следующее:

Но вот при попытке зайти по IP-шнику http://178.49.X.X:8777/swagger-ui.html выдаёт ошибку:

Превышено время ожидания ответа от сайта 178.49.Х.Х. ERR_CONNECTION_TIMED_OUT

Оказалось, что к самому себе ходить не стоит по белому айпишнику :)

Но недопонятность осталась. Я хочу уметь ходить на сервер и удалённо и с локального ПК.

Насколько я понимаю, если я запущу npm приложение(WEB UI часть приложения), которое будет дёргать мой rest сервис , с локальной подсети оно будет ходить без ошибок только через localhost или IP, выданный роутером в подсети. А если ходить "извне" - то нужен белый IP.

Я вижу два варианта решения:

  • Запустить UI часть сервиса в двух экземплярах на разных портах.
  • Локально ходить через анонимайзер, или как-то иначе через посредников.

Оба варианты приемлемы и меня устраивают. Но как-то оно всё костылями пахнет. Подскажите, какие есть более стандартные решения?


Ответы (1 шт):

Автор решения: pegoopik

Есть простой ответ :) Локально у себя в etc/hosts можно дописать что-то вроде:

178.49.Х.Х localhost

Где 178.49.Х.Х - наш белый IP роутера - и всё работает и локально и извне.

UPD: Пообщался сегодня со специалистом в этой теме, он мне собственно и напомнил, что такое etc/hosts. Он ещё говорил, что есть разные варианты, прописать в роутере DNS/пробросить как-то по хитрому порты/завязать это на купленный домен/поработать со шлюзом провайдера и прочее. Если накидаете чуть подробней в ответах что-нибудь об этом - заплюсую :)

→ Ссылка