我正在尝试使用以下命令运行 YouTrack 实例:
java -Xmx1g -XX:MaxPermSize=250m -Djava.security.egd=/dev/zrandom -Djava.awt.headless=true -Djetbrains.youtrack.baseUrl=http://localhost/yt -Djetbrains.youtrack.disableBrowser=true -jar /opt/youtrack.jar 3579
我有一个 nginx 代理(省略不相关的 nginx 配置部分):
upstream youtrack {
server localhost:3579;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
root /usr/share/nginx/html;
location / {
root /var/www/main;
index index.html;
}
location /yt {
rewrite /yt(.*) /$1 break;
proxy_pass http://youtrack;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
每次我输入 URL 时, YouTrackhttp://localhost/yt
都会将我重定向到http://localhost/rootGo
,然后显然会出现 404 错误。为什么会发生这种情况?如何让 YouTrack 在子 URL 上工作?
答案1
尝试将 /yt contextPath 添加到 youtrack。
java -Xmx1g -XX:MaxPermSize=250m -Djava.security.egd=/dev/zrandom -Djava.awt.headless=true -Djetbrains.youtrack.baseUrl=http://localhost/yt -Djetbrains.youtrack.disableBrowser=true -jar /opt/youtrack.jar 3579/yt
来自 youtrack 文档: https://confluence.jetbrains.com/display/YTD6/Installing+YouTrack+with+JAR+Distribution
从 YouTrack 6.0.12223 开始,您可以使用以下命令运行 YouTrack Standalone:
java -Xmx1g -XX:MaxPermSize=250m -Djava.awt.headless=true <Optional Java Start Parameters> -jar youtrack-<version>.jar [host:]<port>[/contextPath] [config file path]
实现对“contextPath”的支持实际上允许您现在使用除以前默认使用的根路径之外的上下文来运行 YouTrack。以下是一些包含 YouTrack 服务器各种 URI 配置的命令示例:
java -Xmx1g -XX:MaxPermSize=250m -Djava.awt.headless=true -jar youtrack-6.0.12124.jar 8080
java -Xmx1g -XX:MaxPermSize=250m -Djava.awt.headless=true -jar youtrack-6.0.12124.jar 8080/youtrack
java -Xmx1g -XX:MaxPermSize=250m -Djava.awt.headless=true -jar youtrack-6.0.12124.jar 127.0.0.1:8080
java -Xmx1g -XX:MaxPermSize=250m -Djava.awt.headless=true -jar youtrack-6.0.12124.jar 127.0.0.1:8080/youtrack