GitLab CE 7 за виртуальным хостом Debian 8/Apache 2: не может получить доступ к ресурсам
В Debian 8.0 я пытаюсь, чтобы Apache 2.4.10 управлял установкой GitLab CE 7.10 Omnibus в качестве виртуального хоста.
Постановка и цель
Apache 2 уже настроен и работает с несколькими виртуальными хостами, которые выглядят какvhost.example.com,
Я хочу настроить Apache и GitLab так, чтобы git.example.com обрабатывается Apache для отображения веб-интерфейса GitLab.
С этой целью я следовал процедуре, описанной в https://stackoverflow.com/a/25809733/4352108.
вопрос
Я могу главную страницу 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/
После поиска в интернете и нескольких изменений я застрял здесь. У кого-нибудь есть представление о том, как это можно решить?
Конфигурационные файлы
Кроме того, вот "интересные" файлы конфигурации, которые я использую:
/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>
/etc/gitlab/gitlab.rb:
external_url 'http://git.example.com'
web_server['external_users'] = ['http']
nginx['enable'] = false
Некоторые интересные включенные моды Apache:
proxy
proxy_http
2 ответа
Это сработало для меня:
<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>
и попробуйте поменять пользователей с http на www-данные
В вашем VirtualHost файл:
замещать
Order deny,allow
Allow from all
От
Require all granted
И ваша проблема решена