Невозможно использовать YouTrack с nginx на субдомене - PullRequest
0 голосов
/ 01 августа 2020

Я пытаюсь запустить YouTrack как субдомен через nginx. Но YouTrack не работает.

Я использую YouTrack 2018.1.41826, так как обновление YouTrack 2019 не работает (после обновления вход невозможен, но это отдельная проблема), nginx 1.18.0 , Java 8u265-b01 для YouTrack и (AdoptOpenJDK -) Java 11.0.8 + 10 для nginx и для tomcat (см. Ниже). Я запускаю YouTrack на порту 8081 через

java -Xmx2048m -jar youtrack-2018.1.41826.jar localhost:8081 &

Внутри YouTrack базовый URL настроен на https://<my domain>/youtrack, <my domain> - это мое доменное имя. На порте 8080 сервер tomcat работает с разными приложениями. Поэтому я настроил nginx следующим образом (замените <my domain>):

    http {
        include       mime.types;
        default_type  application/octet-stream;

        client_max_body_size 12m;
        client_body_buffer_size 16k;

        sendfile        on;

        keepalive_timeout  65;

        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://localhost:8080;
            proxy_read_timeout  90;

            proxy_redirect      http://localhost:8080 https://<my domain>;
        }

        location ~ ^/youtrack/(.*)$ {

            proxy_set_header X-Forwarded-Host $http_host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;

            proxy_buffers 8 64k;
            proxy_busy_buffers_size 128k;
            proxy_buffer_size 64k;

            client_max_body_size 10m;

            proxy_http_version 1.1;
            proxy_pass http://127.0.0.1:8081/$1;

            proxy_redirect      http://127.0.0.1:8081 https://<my domain>/youtrack;
        }

        location ~ ^/youtrack/api/eventSourceBus/(.*)$ {
            proxy_cache off;
            proxy_buffering off;
            proxy_read_timeout 86400s;
            proxy_send_timeout 86400s;
            proxy_set_header Connection '';
            chunked_transfer_encoding off;

            proxy_set_header X-Forwarded-Host $http_host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_http_version 1.1;
            proxy_pass http://127.0.0.1:8081/api/eventSourceBus/$1;

            proxy_redirect      http://127.0.0.1:8081 https://<my domain>/youtrack;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

Теперь при открытии https: /// youtrack / в веб-браузере URL-адрес меняется на https://<my domain>/oauth?state=%2F, забывая о поддомен youtrack. Как мне это исправить?

Ответы [ 2 ]

0 голосов
/ 04 августа 2020

Ответ на вопрос дан на youtrack.jetbrains.com/issue/JT-58725 (на самом деле это проще):

location /youtrack {
            proxy_set_header X-Forwarded-Host $http_host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;

            proxy_buffers 8 64k;
            proxy_busy_buffers_size 128k;
            proxy_buffer_size 64k;

            client_max_body_size 10m;

            proxy_http_version 1.1;
            proxy_pass http://127.0.0.1:8081/youtrack;
            proxy_redirect      http://127.0.0.1:8081 https://<my domain>;
}

location /youtrack/api/eventSourceBus {
            proxy_cache off;
            proxy_buffering off;
            proxy_read_timeout 86400s;
            proxy_send_timeout 86400s;
            proxy_set_header Connection '';
            chunked_transfer_encoding off;

            proxy_set_header X-Forwarded-Host $http_host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_http_version 1.1;
            proxy_pass http://127.0.0.1:8081/youtrack/api/eventSourceBus;
            proxy_redirect      http://127.0.0.1:8081 https://<my domain>;
        }
0 голосов
/ 03 августа 2020

Основным ограничением YouTrack является то, что он должен быть развернут с тем же URL-адресом, который вы хотите использовать для прокси. на http://127.0.0.1:8081/youtack, а не только на http://127.0.0.1:8081. Таким образом, команда запуска приложения должна быть настроена следующим образом:

java -Xmx2048m -jar youtrack-2018.1.41826.jar 8081/youtrack

Кроме того, не забудьте соответствующим образом обновить директивы proxy_pass в файле конфигурации Nginx.

...