Добрый день! Сегодня мы рассмотрим как при помощи прокси сервера Nginx, предоставить доступ к Apache Zeppelin по локальной сети или в сети интернет.
О том, как установить Proxy сервер Nginx, на CentOS8 мы говорили тут.
Здесь мы разобрали пример установки CentOS8.
Настройка Nginx
Для того, чтобы Apache Zeppelin стал доступен из вне нам необходимо изменить стандартный конфигурационный файл Proxy Сервера Nginx, для этого перейдем в каталог /etc/nginx:
cd /etc/nginx
В каталоге nginx будет содержаться файл в котором содержится вся конфигурация Proxy Сервера nginx.conf.
Для того, чтобы сохранить рабочую конфигурацию nginxa и в случае возникновения проблем вернуть быстро конфиг в исходное состояние, сделаем его копию с постфиксом .old, для этого выполним:
cp nginx.conf nginx.conf.old
Теперь отредактируем конфигурационный файл, воспользуемся для этого текстовым редактором vim:
vim nginx.conf
Так как на нашей виртуальной машине могут находится сразу несколько сервисов, то сделаю доступ к zeppelin по постфиксу /zeppelin/. Для этого перейдем к блоку http, server и ниже блока «location /» создадим новый блок location /zeppelin/, где укажем следующее содержимое:
location /zeppelin/ { proxy_pass http://127.0.0.1:8080/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_redirect off; }
Так же, чтобы была возможность подключения по websocket к zeppelin, создадим еще один блок location: «location /zeppelin/ws». В данном блоке укажем следующее:
location /zeppelin/ws { proxy_pass http://127.0.0.1/zeppelin/ws; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; }
После чего сохраним изменения и перезапустим Nginx. Проверим, что после перезагрузки Nginx успешно перезапустился.
systemctl restart nginx systemctl status nginx
Проверим, что теперь мы можем подключиться без проблем к zeppelin из локальной сети, для этого откроем веб браузер и прейдем по адресу: ip машины/zeppelin/
Как видите Apache Zeppelin теперь доступен любому устройству из локальной сети или интернета.
Так как не особо удобно постоянно для перезапуска использовать пользователя и скрипт работы с демоном, то логичнее было бы создать сервис с которым бы мы смогли работать по средством утилиты systemctl. Поэтому далее давайте рассмотрим как создать сервис для работы с Apache Zeppelin.