Назад | Перейти на главную страницу

Nginx как обратный прокси для определенного пути

Я пытаюсь настроить Nginx в качестве обратного прокси для Jenkins CI / CD.

Очень популярный плагин для Jenkins, Blue Ocean, доступен по адресу <jenkins-domain.tld>/blue.

Я ищу конфигурацию Nginx, которая позволяет мне использовать отдельный домен для доступа к Blue Ocean, т.е. <jenkins-domain.tld> и <blue-ocean-domain.tld>. Итак, все запросы к <blue-ocean-domain.tld> следует направить в /blue подпуть.

Как такое возможно?

Вам нужно использовать так называемые server_blocks

upstream jenkins {
  server jenkins:8080 fail_timeout=10;
}

server {
  listen       ...;
  server_name  jenkins-domain.tld;

  location / {                
    proxy_redirect          http:// https://;
    proxy_pass              http://jenkins;
  }
}

server {
  listen       ...;
  server_name  blue-ocean-domain.tld;

  location / {                
    proxy_redirect          http:// https://;
    proxy_pass              http://jenkins/blue;
  }
}