无法在子域上将 YouTrack 与 nginx 一起使用
Cannot use YouTrack with nginx on a subdomain
我正在尝试 运行 通过 nginx 将 YouTrack 作为子域。但是 YouTrack 不起作用。
我正在使用 YouTrack 2018.1.41826,因为对 YouTrack 2019 的更新不起作用(更新后无法登录,但这是一个单独的问题),nginx 1.18.0,Java 8u265-b01对于 YouTrack 和 (AdoptOpenJDK-)Java 11.0.8+10 对于 nginx 和 tomcat(见下文)。我通过
在端口 8081 上启动 YouTrack
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/;
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/;
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
子域。我应该如何解决这个问题?
YouTrack 的基本限制是它应该使用与代理它相同的 URL 路径进行部署。
例如,要使其在 https://<my domain>/youtrack
上运行,应将应用程序部署到 http://127.0.0.1:8081/youtack
,而不仅仅是 http://127.0.0.1:8081
。所以应用启动命令要调整如下:
java -Xmx2048m -jar youtrack-2018.1.41826.jar 8081/youtrack
此外,不要忘记相应地更新 Nginx 配置文件中的 proxy_pass
指令。
问题已在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>;
}
我正在尝试 运行 通过 nginx 将 YouTrack 作为子域。但是 YouTrack 不起作用。
我正在使用 YouTrack 2018.1.41826,因为对 YouTrack 2019 的更新不起作用(更新后无法登录,但这是一个单独的问题),nginx 1.18.0,Java 8u265-b01对于 YouTrack 和 (AdoptOpenJDK-)Java 11.0.8+10 对于 nginx 和 tomcat(见下文)。我通过
在端口 8081 上启动 YouTrackjava -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/;
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/;
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
子域。我应该如何解决这个问题?
YouTrack 的基本限制是它应该使用与代理它相同的 URL 路径进行部署。
例如,要使其在 https://<my domain>/youtrack
上运行,应将应用程序部署到 http://127.0.0.1:8081/youtack
,而不仅仅是 http://127.0.0.1:8081
。所以应用启动命令要调整如下:
java -Xmx2048m -jar youtrack-2018.1.41826.jar 8081/youtrack
此外,不要忘记相应地更新 Nginx 配置文件中的 proxy_pass
指令。
问题已在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>;
}