运行 JetBrains Hub 位于 Apache 子文件夹的子域中

Run JetBrains Hub in a subdomain in a subfolder with Apache

我正在使用 JetBrains 工具来管理团队。使用 Apache 管理我的 domains/subdomains。我有一个名为 dev.sepidarr.ir 的子域,它负责作为我的开发环境的主要入口点。

dev.sepidarr.ir.conf

<VirtualHost *:80>

  DocumentRoot /home/neacodin/domains/dev.sepidarr.ir/
  DirectoryIndex index.html

  <Directory "/home/neacodin/domains/dev.sepidarr.ir">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
  </Directory>

  ServerName dev.sepidarr.ir
  ServerAlias www.dev.sepidarr.ir

  RewriteEngine on
  RewriteCond %{SERVER_NAME} =www.dev.sepidarr.ir [OR]
  RewriteCond %{SERVER_NAME} =dev.sepidarr.ir
  RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

</VirtualHost>

我想在不同的 url 中使用每个 JetBrains 的工具 运行,例如我需要 upsource 到 运行 作为 dev.sepidarr.ir/upsourcehubdev.sepidarr.ir/hub.

基于官方JetBrains tutorial about how to setup a reverse proxy server,我为hub创建了一个.conf文件如下。

<VirtualHost *:80>

  ServerName dev.sepidarr.ir

  DefaultType none

  RewriteEngine on
  AllowEncodedSlashes on

  RewriteCond %{QUERY_STRING} transport=polling
  RewriteRule /(.*)$ http://localhost:8110/ [P]

  ProxyRequests off
  ProxyPreserveHost On

  ProxyPass /hub/ http://localhost:8110/hub
  ProxyPassReverse /hub/ http://localhost:8110/hub

</VirtualHost>

问题是当我导航到 dev.sepidarr.ir 时它工作正常。但是当我尝试打开 dev.sepidarr.ir/hub 时,我得到 404 Not Found.

我还使用以下命令将集线器配置为 运行 和自定义 base-url。

hub.sh configure--listen-port 8110 --base-url https://dev.sepidarr.ir/hub

但没有任何改变。

只需使用这个:

<VirtualHost *:80>

ServerName dev.sepidarr.ir

... REST OF CONFIGS ...

<Location /hub>
    ProxyPass http://localhost:8110/hub
    ProxyPassReverse http://localhost:8110/hub
    Order allow,deny
    Allow from all
</Location>

</VirtualHost>

现在您可以打开 dev.sepidarr.ir/hub,它会显示 {your_server_id/localhost}:8110/hub

可以根据需要添加任意多的 Location 指令。