Вопрос или проблема
У меня есть один вопрос относительно назначения псевдонима IP-адресу с номером порта.
Например, я запускаю Jenkins на своём локальном компьютере на порту 8080 и Nexus на порту 8081.
Я буду получать доступ к интерфейсу, вводя адрес вручную, как показано ниже.
Для Jenkins: 192.168.122.1:8080
Для Nexus: 192.168.122.1:8081
Вместо выполнения вышеуказанного процесса можно задать имена, как показано ниже.
192.168.122.1:8080
-> jenkins.world
192.168.122.1:8081
-> nexus.world
или псевдонимы, как показано ниже.
192.168.122.1:8080
-> go/jenkins
192.168.122.1:8081
-> go/nexus
Не могли бы вы проверить и посоветовать о целесообразности вышеуказанных псевдонимов в операционной системе CentOS 7.6.
Я могу подумать о нескольких вариантах, но не думаю, что вы сможете достичь именно того, что ищете.
Если вы добавите в ваш файл /etc/hosts следующую строку:
192.168.122.1 jenkins.world nexus.world
Тогда в вашем браузере вы сможете перейти на jenkins.world:8080 или nexus.world:8081, при этом учтите, что вам нужно будет указать номер порта, так как его нельзя указать в файле hosts.
Если вы не против запустить браузер из терминала, вы можете добавить строку, аналогичную этой, в ваш файл .bashrc в домашнем каталоге.
alias jenkins.world="firefox 192.168.122.1:8080"
alias nexus.world="firefox 192.168.122.1:8081"
Еще одним вариантом являются привычные закладки в браузере.
Или, если вы знакомы с веб-серверами, посмотрите
https://stackoverflow.com/questions/27997071/redirecting-from-port-80-to-different-ports-based-on-url
Ответ или решение
Да, возможно создать псевдонимы для IP-адресов с номерами портов в CentOS 7. Однако важно понимать, что этот процесс не так прост, как может показаться на первый взгляд. Рассмотрим несколько методов, которые могут помочь вам достичь желаемого результата.
1. Настройка файла /etc/hosts
Вы можете добавить псевдонимы для своих сервисов в файл /etc/hosts
, что позволит вам использовать легко запоминаемые имена вместо IP-адресов. Например:
192.168.122.1 jenkins.world nexus.world
Тем не менее, у этого метода есть ограничения: хотя вы сможете вводить jenkins.world:8080
и nexus.world:8081
в браузере, вы все равно должны указать номер порта, так как в файле /etc/hosts
нельзя указать порты.
2. Использование алиасов в .bashrc
Вы можете создать алиасы для быстрого доступа к вашим сервисам, запуская их через терминал. Для этого добавьте следующие строки в файл .bashrc
вашего пользователя:
alias jenkins.world="firefox 192.168.122.1:8080"
alias nexus.world="firefox 192.168.122.1:8081"
Теперь, когда вы откроете терминал и наберёте jenkins.world
, автоматически откроется ваш браузер с необходимым адресом. Однако это работает только из командной строки и не решает вопрос доступа через браузер напрямую.
3. Браузерные закладки
Простым и эффективным способом является создание закладок в браузере для ваших сервисов. Это позволяет вам легко открывать Jenkins и Nexus, используя имена, которые вы сами выберете. Это решение немного менее автоматизировано, но очень эффективно.
4. Перенаправление IP на порты с помощью веб-сервера
Если у вас есть опыт работы с веб-серверами, возможно, стоит рассмотреть возможность настройки реверс-прокси с использованием таких решений, как Nginx или Apache. С помощью этих серверов вы можете перенаправлять запросы с определённых URL-адресов на нужные порты:
server {
listen 80;
location /jenkins {
proxy_pass http://192.168.122.1:8080;
}
location /nexus {
proxy_pass http://192.168.122.1:8081;
}
}
В этом случае вы сможете использовать адреса http://your-server-ip/jenkins
и http://your-server-ip/nexus
для доступа к вашим сервисам без указания портов. Это требует больше усилий на первоначальную настройку, но в итоге может упростить доступ к вашим приложениям.
Заключение
Хотя невозможно полностью избавиться от указания портов в стандартном подходе, существуют различные методы, которые позволяют добиться похожего результата. Выбор подхода зависит от ваших навыков, времени и требований к удобству использования. Если вам нужен более сложный и автоматизированный подход, использование веб-сервера — это, безусловно, самое эффективное решение.