@Minorus_one

Как реализовать запрет к сайту через IP и порт, а оставить доступ только по доменному имени?

Доброго времени суток. Имеется сервер на котором крутится Apache. Сервер имеет белый статический IP. Есть некоторое количество приложений с веб-мордой. Доступ к ним происходит по IP-адрес:порт. Для удобства получил доменное имя. В apache настроил виртуальные хосты c проксированием на нужный порт, чтобы ссылка выглядела как torrent.mydomen.ru, которая ведёт на 1.1.1.1:9091 (IP в данном случае использован для примера).
Теперь вопрос, как реализовать запрет к сайту через IP и порт, а оставить доступ только по доменному имени?

P.S. На сервере крутится ещё NextCloud. Там доступ по IP я смог заблокировать с помощью виртуального сервера в котором ServerName указан мой IP и сайт ведёт на заглушку. Хотелось бы чтобы всё что крутится на портах, вело на эту заглушку при вводе IP адреса и порта.
  • Вопрос задан
  • 875 просмотров
Пригласить эксперта
Ответы на вопрос 1
Все просто
сайты не могут лежать по умолчанию на портах отличных от 80 и 443 в противном случае вам придется всегда дописывать порт но такого не происходит.
и белых айпи на все сайты не напасешься
А по стеку TCP\IP вам нужно или открыть другой порт для нового сайта или другой айпи, третьего не дано (кроме как накрутить костылей).
Собственно Веб сервер делает костыль дабы можно было впинуть невпихуемое
он разбирает http_referer вашего браузера, парсит в нем строку хост и на основание его подставляет ваш конфиг сайта с его путями и переменными
таким образом можно на один порт повешать несколко сайтов и незапудать веб сервер.
Однако причем тут ваша проблема.
А при том
1. у вас сайт лежит в папке /var/www и он единственный
2. при инсталяции веб сервера у вас автоматически создается первый конфиг в котором имя сайта отсутствует или что-тио вроде такого - то есть любое вообще любое включая и айпи, это сделано для простоты первого старта, дешево и сердито и сразу работает.
По хорошему этот конфиг должен вести на index.html - здрасти вы попали на сервер но что-то пошло не так с вашим доменом я его не нашел.

А все остальные сайты должны иметь явно указадый домен.
....
 ServerName 3dpaneli.ru
 ServerAlias www.3dpaneli.ru
...


Короче вам нужно явно указать сервер нейм а еще лучше создать второй конфиг.
То есть у вас не разрешен доступ по айпи у вас разрешен доступ по любой записи что приведет на этот сервер.
Конфиги могут немного отличаться от выбранной веб панели представления пхп наличия nginx и тд.
по этому не привожу весь конфиг а только нужную вам часть.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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