Я пытаюсь настроить 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
в section
переменной, а затем используйте эту переменную в return
заявление, чтобы сформировать желаемый путь.