LINUX.ORG.RU
ФорумAdmin

nginx jsessionid

 , ,


1

2

Всем привет
Стоит система сборки jenkins, которая доступная по адресу test.ru:18080/jenkins
Хочется иметь к ней доступ по адерсу builder.test.ru
Для этого использую nginx

server {

    listen 80;
    server_name builder.test.ru;

    location / {
      proxy_set_header        Host $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_pass http://test.ru:18080/jenkins/;
      rewrite ^/jenkins(.*)$ $1 last;
    }
  }
При таком конфиге, если заходить на builder.test.ru сайт отображается. Но в url'e светится http://builder.test.ru/jenkins/login?from=/jenkins/ а хочется что бы было http://builder.test.ru/login?from=/jenkins/
Пробовал менять конфиг так:
server {

    listen 80;
    server_name builder.test.ru;

    location / {
      proxy_set_header        Host $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_pass http://test.ru:18080/jenkins/;
      rewrite ^/jenkins(.*)$ $1 redirect;
    }
  }
Тогда главная страница имеет url http://builder.test.ru/login?from=/jenkins/ т.е. как надо, но при этом отваливается аунтетификация. При логине выдается 404 ошибка а url выглядит так http://builder.test.ru/loginError;jsessionid=07211F961AF0EC6C5B395343E1D4D7F4

Как надо поменять nginx что бы работало как я хочу?


Ответ на: комментарий от leave

А можно пример, желательно для моего случая.
Я вчера игрался в различными редиректами, в лучшем случаи у меня получалось что url зацкливался, постоянно подставлялось /jenkins и получалось что то типа http://builder.test.ru/jenkins/jenkins/jenkins и так до бескончености.

n4ela
() автор топика
Ответ на: комментарий от n4ela
server {
    listen 80;
    server_name builder.test.ru;
    location / {
      proxy_set_header        Host $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_pass              http://test.ru:18080/jenkins/;
      rewrite /jenkins/(.*) /$1 break;
    }
}

Попробуй так. Я немного ошибся, на проде у нас строго обратная конфигурация: надо по /bla сходить в / бэкенда. Так что конфиг выше из головы.

leave ★★★★★
()
Ответ на: комментарий от leave

Так не работает. url в браузере имеет вид http://builder.test.ru/jenkins/login?from=/jenkins
А ошибка HTTP Status 404 - /login

Я пока избавился от /jenkins в самой конфигурации tomcat'a

<Context path="" docBase="jenkins" debug="0" reloadable="true"></Context>
в nginx так
server {
    listen 80;
    server_name builder.test.ru;
    location / {
      proxy_set_header        Host $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_pass              http://test.ru:18080/;
    }
}

Такой вариант работает, у меня каждое приложение крутится в отдельном docker'e со своим томакатом. Но скорее всего такой способ не прокатит если будет два war'ика.

n4ela
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.