@Pro_Code

Как пробросить порты к веб серверу Ubuntu 22.03 с двумя сайтами при наличии статического IP?

Есть домашний веб сервер LAMP на Ubuntu server 22.03. Есть статический IP для доступа из вне. На Убунту в директориях лежат два сайта с настройками через .conf файл. При подключении внутри сети из любой другой локальной машины, если настроить файл hosts с настройками типа - xxx.xxx.xxx.xxx site1.info, xxx.xxx.xxx.xxx site2.info, подключение работает без проблем. В теории из интернета если настроить проброс портов на роутере, доступ к одному сайту должен быть при подключении по внешнему статическому IP. Вопрос в следующем: можно ли как то организовать доступ ко второму сайту, не используя подключения доменов?
  • Вопрос задан
  • 275 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Drno
reverse proxy nginx
можно без домена..
главное разные /path указать

можно с халявным доменом, который выделен на каждый IP - от sslip.io
Ответ написан
shambler81
@shambler81 Куратор тега Linux
по моему вы занимаетесь какой-то дичью
1. Домен стоит 200 р в год, то есть 1 шаурма за год, замечу домен 3 уровня бесплатны так что site1.domain.ru
site2.domain.ru вам будут стоить как 1 домен.

2.Есть бесплатный DynDNS

3. С технической же стороны проблемы в открытие сайта через интернет никакого нет,
На клиентской стороне указывайте в хост файле внешний свой айпи, открывайте порты и все
веб сервер сам разберется какой сайт подставить, У него есть IP и $HOST из браузера.
Этого ему более чем достаточно чтоб дать нужный сайт. поскольку именно по хосту из браузера он разберает какой сайт вам отдать, пусть их будет хоть миллион.
Вы все думаете по принципу 1 порт+ 1 ip = 1 сайт.
Но это не так.
1 порт +1 ip + host из браузера клиента.
да так вы хоть сайт microsoft.com можете сделать, если у вас свой хост файл на всех сторонах то проблемы не будет. IP есть хост тоже есть проблем нет.
А вот ssl сертификат Letsencrypt вы в такой схеме не получите, вам уже нужен будет реальный домен
В таком случае вам подойдет вариант 1 и 2

А в заблуждение вас ввел стандартный конфиг для дефолтного хоста
Это как в фаерволе все порты по умочанию закрыты.
Так и в веб сервере есть деофлтный конфиг стоковый, который как вы подозреваете есть у каждого веб сервера по умолчанию и он 1 на старте в нем написано что-то вроде
server {
        listen 80 default_server;

'так например в nginx
То есть любой домен на этом айпи, вот любой. откроет сайт.
и это удобно поскольку первый сайт откроется по любому хосту и даже по любому айпи, то есть он сразу работает.
Но по хорошему вам нужно делать следующее
1. создать конфиг в котором будет явно указат ваш сайт site1.ru
2. создать вотрой конфиг в котором будет указан явно ваш сайт site2.ru.
3. а вот в дефолтном конфиге, который по умолчанию ведет в var/www вам нужно разместить заглушку. То есть перейти в эту папку удалить в ней сайт, там его быть не должно. и положить там index.html
"здрасти сервер работает, но я не могу найти ваш домен"
тогда все будет работать валидно и не будет кашы с 1+ сайтом.
Проблема не во 2 сайте а именно то что вы первый сайт положили не в тот конфиг ;) но так делают все поскольку он дефолтный и работает
Ответ написан
Ваш ответ на вопрос

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

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