Я пытаюсь настроить nginx, чтобы позволить узлу имени кластера на основе Hadoop, который я настроил, эффективно перенаправлять на различные пользовательские интерфейсы, окружающие Hadoop, на основе расширения файла в URL-адресе. Для простоты скажем, что
firstnode.com соответствует главному узлу моего кластера
m пытается настроить nginx, чтобы разрешить узлу имени кластера на основе Hadoop, который я настроил, эффективно перенаправлять на различные пользовательские интерфейсы, окружающие Hadoop, на основе расширения файла в URL-адресе. Для простоты скажем, чтоfirstnode.com соответствует главному узлу моего кластера
m пытается настроить nginx, чтобы разрешить узлу имени кластера на основе Hadoop, который я настроил, эффективно перенаправлять на различные пользовательские интерфейсы, окружающие Hadoop, на основе расширения файла в URL-адресе. Для простоты скажем, чтоfirstnode.com соответствует главному узлу моего кластера
stormnode.com соответствует узлу, на котором запущен шторм, и пользовательский интерфейс доступен через порт 8080.Тогда идеальным перенаправлением было бы http://firstnode.com/storm -> http : //stormnode.com: 8080 .
Я попытался отредактировать свой файл конфигурации Nginx так, что в итоге получил что-то вроде каждого из следующих:
server{ listen 80; server_name firstnode.com; location /storm{ proxy_pass secondnode.com:8080; } }
, а также
server{ listen 80; server_name firstnode.com; location /storm{ return 301 $scheme://secondnode.com:8080$request_uri; } }
, а также эквивалентные утверждения к последнему с помощью регулярных выражений. К сожалению, самое близкое, что я получил, - это перенаправление firstnode.com/storm на secondnode.com:8080/storm. Я был бы очень признателен за любой совет о том, как переписать URL-адрес через файлы конфигурации nginx без передачи расширения / пути файла (также известного как / storm) в новый URL-адрес .
Попробуйте следующее:
server {
listen 80;
server_name firstnode.com;
location ~ ^/storm(?<section>.*)$ {
return 301 $scheme://secondnode.com:8080$section;
}
}
Здесь мы записываем часть после / storm
в переменную раздела
, а затем используем эту переменную в оператор return
для формирования желаемого пути.