Введение в GEO.RITM
GEO.RITM распространяется в видео ВМ или докер-контейнеров с заранее установленным ПО. Главная часть - ядро - выполняется в сервере приложений Payara. Для уменьшения количества приложений, web-сервер также используется в Payara. Для корректной работы GEO.RITM необходимо произвести множество настроек. Если при подключении снаружи локальной сети (из интернет) и ил локальной сети страница открывается без ошибок, то с маршрутизатором всё в порядке, NAT Loopback работает исправно.
Но случаются ситуации, когда при обращении к GEO.RITM снаружи локальной сети (из интернет) - страница открывается и есть доступ к серверу, а из локальной сети - нет. В таком случае на странице можно видеть такое сообщение: "Истекло время ожидания ответа сервера. Нажмите Ok, чтобы повторить попытку."
Причина этого - в не работающем (выключенном) NAT Loopback (NAT Reflection, Hairpin) на маршрутизаторе. NAT Loopback - это возможность получения доступа к серверу, который находится в той же локальной сети что и клиент, но обращение происходит на внешний IP адрес маршрутизатора.
Бывают и обратные случаи: изнутри локальной сети страница GEO.RITM открывается, а снаружи (из интернет) - нет. В таком случае на странице можно видеть такое же сообщение: "Истекло время ожидания ответа сервера. Нажмите Ok, чтобы повторить попытку."
Причина - в не верных настройках GEO.RITM (rrconf) или не настроенном NAT в маршрутизаторе. Для исправления - в настройках Payara ➜ Resources ➜ JNDI ➜ Custom Resources ➜ rrconf измените значение параметра ru.ritm.georitm.host - укажите ваш внешний IP адрес. В настройках вашего маршрутизатора настройте NAT (port mapping, virual server, masquerade, проброс портов и т.п.) - транслируйте порт TCP80 на адрес ВМ GEO.RITM или ПК с докером.
Пример не работающего NAT Loopback
Как исправить не работающий NAT Loopback?
Варианты исправления такой ситуации:
- Включить NAT Loopback (NAT Reflection, Hairpin) в маршрутизаторе. По вопросу настроек маршрутизатора - обратитесь пожалуйста к производителю маршрутизатора;
- Если зарегистрировано доменное имя для сервера, то можно изменить настройку представлений (View) для DNS сервера или для каждого ПК в локальной сети отредактировать файл hosts;
- Использовать разные web-серверы для пользователей внутри локальной сети и снаружи (пользователи интернет) с разными настройками в rrconf.
Вариант 1. Внесение изменений в DNS
Если вы зарегистрировали доменное имя для вашего сервера GEO.RITM и у вас в локальной сети работает DNS-сервер, то вы можете настроить разные представления (разные View) для разных клиентов в вашем DNS-сервере. При обращении клиента DNS из локальной сети, DNS сервер будет выдавать локальный IP адрес сервера приложений GEO.RITM. При обращении клиента DNS из внешней сети, DNS сервер будет выдавать внешний IP адрес маршрутизатора как адрес сервера приложений GEO.RITM. По вопросу настройки DNS сервера - обратитесь пожалуйста к разработчику вашего DNS сервера.
Вариант 2. Внесение изменений в файл hosts
Если вы зарегистрировали доменное имя для вашего сервера GEO.RITM, то можно внести изменения в файл hosts. На каждом ПК вашей локальной сети, который будет подключаться к GEO.RITM браузером, отредактируйте C:\Windows\System32\drivers\etc\hosts Добавьте новую строку: сначала укажите доменное имя, которое вы зарегистрировали для вашего сервера GEO.RITM, потом несколько пробелов и локальный IP адрес вашего сервера GEO.RITM. Сохраните файл.
Пример № 3 для "Вариант 1" и "Вариант 2". Подключение производится из сети интернет (NAT Loopback не нужен), для GEO.RITM зарегистрировано доменное имя, подключение проходит успешно.
Пример № 4 для "Вариант 1" и "Вариант 2". Подключение производится из локальной сети, работает локальный DNS сервер с разными view, либо отредактирован файл hosts,подключение проходит успешно.
Вариант 3. Использование двух web-серверов
- Авторизуйтесь в Linux ВМ GEO.RITM;
Логин и пароль по умолчанию
root
password
- Установите web-сервер apache командой
yum install httpd -y
- Отредактируйте /etc/httpd/conf/httpd.conf - в параметре Listen укажите значение 8181
Listen 8181
- Скопируйте содержимое каталога /opt/payara41/glassfish/domains/domain1/applications/georitm-client-2.45.1 в /var/www/html/ командой
В зависимости от установленной у вас версии GEO.RITM, путь будет отличаться.
cp -r /opt/payara41/glassfish/domains/domain1/applications/georitm-client-2.45.1/. /var/www/html/
- Отредактируйте /var/www/html/config/server.json - укажите локальный адрес вашей ВМ в параметре host.
Пример для 192.168.5.25. У вас адрес будет другой.
{"protocol":"http","host":"192.168.5.25","port":80,"connector":"restapi"}
- Выполните команды
systemctl enable httpd systemctl start httpd
Теперь снаружи сети GEO.RITM будет доступен по внешнему адресу, а из локальной сети по адресу и порту
Пример для 192.168.5.25. У вас адрес будет другой.
http://192.168.5.25:8181
Пример № 5 для "Вариант 3". Подключение производится локальной из сети к одному web-серверу, а снаружи - к другому web-серверу,подключение проходит успешно.