Debian 8/Apache 2 虚拟主机背后的 GitLab CE 7:无法访问资产

Arc*_*s B 6 debian mod-proxy apache-2.2 gitlab

在 Debian 8.0 上,我试图让 Apache 2.4.10 作为虚拟主机管理 GitLab CE 7.10 Omnibus 安装。

设定和目标

Apache 2 已经设置并运行了几个看起来像 vhost.example.com.

我想配置 Apache 和 GitLab,以便git.example.com由 Apache 处理以显示 GitLab Web 界面。

为此,我遵循了/sf/answers/1806681341/ 中描述的程序 。

问题

我可以访问 GitLab 的主页git.example.com,但无法访问任何其他资源,例如 CSS 或图标。Apache 日志显示四个错误,它们看起来都像:

[Sun May 10 20:24:57.146329 2015] [authz_core:error] [pid 4141] [client 1.2.3.4:80] AH01630: client denied by server configuration: /opt/gitlab/embedded/service/gitlab-rails/public/assets/application-TOKEN.css, referer: http://git.example.com/
Run Code Online (Sandbox Code Playgroud)

在网上搜索并尝试了几项更改后,我被困在这里。有谁知道如何解决这个问题?

配置文件

此外,这里是我使用的“有趣”配置文件:

/etc/apache2/sites-enabled/git.conf

<VirtualHost git.example.com:80>
    ServerAdmin admin@example.com
    DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public
    ServerName git.example.com
    ServerAlias git.example.com

    ProxyPreserveHost On

    <Location /opt/gitlab/embedded/service/gitlab-rails/public>

        Order deny,allow
        Allow from all
        Options FollowSymLinks
        Require all granted

        ProxyPassReverse http://localhost:8080
        ProxyPassReverse http://git.example.com
    </Location>

    RewriteEngine on
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
    RewriteRule .* http://localhost:8080%{REQUEST_URI} [P,QSA]

    ErrorDocument 404 /404.html
    ErrorDocument 422 /422.html
    ErrorDocument 500 /500.html
    ErrorDocument 503 /deploy.html

    LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common_forwarded
    ErrorLog  /${APACHE_LOG_DIR}/gitlab.error.log
    CustomLog /${APACHE_LOG_DIR}/gitlab.forwarded.log common_forwarded
    CustomLog /${APACHE_LOG_DIR}/gitlab.access.log combined env=!dontlog
    CustomLog /${APACHE_LOG_DIR}/gitlab.log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

/etc/gitlab/gitlab.rb

external_url 'http://git.example.com'
web_server['external_users'] = ['http']
nginx['enable'] = false
Run Code Online (Sandbox Code Playgroud)

一些有趣的启用 Apache 模组:

proxy
proxy_http
Run Code Online (Sandbox Code Playgroud)

小智 1

这对我有用:

<VirtualHost *:80>
  ServerName git.example.com
  ServerSignature Off
  DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public
  ProxyPreserveHost On

  <Location />
    Require all granted
    ProxyPassReverse http://127.0.0.1:8080
    ProxyPassReverse http://git.example.com/
  </Location>

  RewriteEngine on
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
  RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA]

  # needed for downloading attachments
  DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public

</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

并尝试将用户从 http 更改为 www-data