voker2005
@voker2005

Как сделать в Nginx проксирование для конкретного location?

Здравствуйте,

Как сделать Nginx проксирование для конкретного location? Мне нужно чтобы при обращении на домен https://corp.domain.com открывалась Grafana, а при обращении по ссылке https://corp.domain.com/prom/ открывался Prometheus.

5dcaba668ffc1264804255.jpeg

Сейчас у меня такой конфиг, он не работает:

server {
        server_name     corp.domain.com;

        ............ Тут часть от Let's Encrypt сертификата ............

        location / {
                proxy_pass http://localhost:3000;
                gzip                    off;
                proxy_buffers           8 32k;
                proxy_buffer_size       64k;
                proxy_request_buffering off;
                proxy_read_timeout      300;
                proxy_redirect          off;
                proxy_http_version      1.1;
                proxy_set_header        Host                    $http_host;
                proxy_set_header        X-Real-IP               $remote_addr;
                proxy_set_header        X-Forwarded-For         $proxy_add_x_forwarded_for;
                proxy_set_header        X-Forwarded-Proto       $scheme;
                proxy_set_header        X-Forwarded-Ssl         on;
                proxy_set_header        X-Frame-Options         SAMEORIGIN;
                proxy_set_header        Upgrade                 $http_upgrade;
                proxy_set_header        Connection              "upgrade";
        }

        location /prom {
                proxy_pass http://localhost:9090/;
        }

  ............ Тут тоже часть от Let's Encrypt сертификата ..... например переадресация c http на https.......

}


Сейчас это работает так, при попытке открыть https://corp.domain.com/prom/, открвается Grafana, как будто этого правила с location в nginx нет вовсе. В логи ошибки никакие не пишутся, при посещении сайта, в логах "обычный" 302-ой редирект в графану.
  • Вопрос задан
  • 1102 просмотра
Пригласить эксперта
Ответы на вопрос 3
Oldshelf
@Oldshelf
Попробуйте указать локэйшн более конкретно:
location = /prom {
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
nginx.org/ru/docs/http/request_processing.html

у тебя два хоста - corp.host и host
вот их и настраивай
зачем ты в corp.host лепишь настройки host ?

https://www.8host.com/blog/nastrojka-virtualnyx-xo...
Ответ написан
@grinat
Ну nginx как есть перекидывает запрос, и похоже прометеус решает что это невалидная страница и через 302 редирект перекидывает на главный домен, где стоит графана из-за этого тебе кажется что не работает. Тебе надо в прометеус где в настройках указать хост как https://corp.domain.com/prom/ либо вырубить заголовки через proxy_pass_request_headers off и вручную указывать там path, но оно все равно работать думаю не будет, при клике по любой ссылке, будет перекидывать в графану.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы