Ubuntu 15.10
Apache / 2.4.10 (Ubuntu)
Все зависимости модуля включены:
GitLab Community Edition 8.0.3
Документ GitLab: / opt / gitlab / embedded / service / gitlab-rails / public
Я устанавливаю GitLab так: https://about.gitlab.com/downloads/#ubuntu1404
На моем сервере у меня есть веб-сайт, работающий с apache2 (example-site.com).
У меня GitLab работает со встроенным nginx (example-gitlab.com)
У меня есть 1 сервер, 1 IP и несколько FQDN.
Таким образом, все мои доменные имена указывают на GitLab.
Таким образом, instance-gitlab.com указывает на GitLab, как и нужно, но example-site.com указывает также на GitLab и все остальные FQDN тоже.
Думаю, мне нужно (и я пытался):
MAJ: на самом деле проблема в том, что Apache и связанный-nginx работают на одном IP с одним и тем же портом (80). И я не хочу запускать веб-сайт на порт 81 или что-то еще, только порт 80.
Я предпочитаю использовать apache2 для всех моих веб-сайтов PHP, и я не возражаю, если gitlab использует apache2 или связанный nginx, все, что я хочу, - это использовать все мое полное доменное имя для каждого из моих сайтов, а не все мое перенаправление полного доменного имени на gitlab.
Я не понимаю, как работают омнибус, рельсы или обратный прокси.
Я попытался отключить встроенный nginx в /etc/gitlab/gitlab.rb
nginx['enable'] = false
# For GitLab CI, use the following:
ci_nginx['enable'] = false
Добавить www-data
к gitlab-www
сгруппировать и изменить:
web_server['external_users'] = ['www-data']
и добавив измененный vhost.conf в apache2, я беру его из https://gitlab.com/gitlab-org/gitlab-recipes/blob/master/web-server/apache/gitlab-apache24.conf
<VirtualHost *:80>
ServerName exemple-gitlab.com
ServerSignature Off
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
<Location />
Require all granted
#Allow forwarding to gitlab-git-http-server
ProxyPassReverse http://127.0.0.1:8181
#Allow forwarding to GitLab Rails app (Unicorn)
ProxyPassReverse http://127.0.0.1:8080
ProxyPassReverse http://exemple-gitlab.com/
</Location>
#apache equivalent of nginx try files
RewriteEngine on
#Forward these requests to gitlab-git-http-server
RewriteCond %{REQUEST_URI} ^/[\w\.-]+/[\w\.-]+/repository/archive.* [OR]
RewriteCond %{REQUEST_URI} ^/api/v3/projects/.*/repository/archive.* [OR]
RewriteCond %{REQUEST_URI} ^/[\w\.-]+/[\w\.-]+/(info/refs|git-upload-pack|git-receive-pack)$
RewriteRule .* http://127.0.0.1:8181%{REQUEST_URI} [P,QSA]
#Forward any other requests to GitLab Rails app (Unicorn)
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_URI} ^/uploads
RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA,NE]
# needed for downloading attachments
/opt/gitlab/embedded/service/gitlab-rails/public
#Set up apache error documents, if back end goes down (i.e. 503 error) then a maintenance/deploy page is thrown up.
ErrorDocument 404 /404.html
ErrorDocument 422 /422.html
ErrorDocument 500 /500.html
ErrorDocument 503 /deploy.html
# /var/log/apache2.
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common_forwarded
ErrorLog /var/log/apache2/logs/gitlab.example.com_error.log
CustomLog /var/log/apache2/logs/gitlab.example.com_forwarded.log common_forwarded
CustomLog /var/log/apache2/logs/gitlab.example.com_access.log combined env=!dontlog
CustomLog /var/log/apache2/logs/gitlab.example.com.log combined
</VirtualHost>
Но это ошибка conf моего apache2:
~# systemctl status apache2.service
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2)
Active: failed (Result: exit-code) since mar. 2015-11-10 15:41:08 CET; 1min 9s ago
Docs: man:systemd-sysv-generator(8)
Process: 18315 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 18342 ExecStart=/etc/init.d/apache2 start (code=exited, status=1/FAILURE)
nov. 10 15:41:08 vpsxxx.ovh.net apache2[18342]: * The apache2 configtest failed.
nov. 10 15:41:08 vpsxxx.ovh.net apache2[18342]: Output of config test was:
nov. 10 15:41:08 vpsxxx.ovh.net apache2[18342]: (2)No such file or directory: AH02291: Cannot access di...f:10
nov. 10 15:41:08 vpsxxx.ovh.net apache2[18342]: AH00014: Configuration check failed
nov. 10 15:41:08 vpsxxx.ovh.net apache2[18342]: Action 'configtest' failed.
nov. 10 15:41:08 vpsxxx.ovh.net apache2[18342]: The Apache error log may have more information.
nov. 10 15:41:08 vpsxxx.ovh.net systemd[1]: apache2.service: Control process exited, code=exited status=1
nov. 10 15:41:08 vpsxxx.ovh.net systemd[1]: Failed to start LSB: Apache2 web server.
nov. 10 15:41:08 vpsxxx.ovh.net systemd[1]: apache2.service: Unit entered failed state.
nov. 10 15:41:08 vpsxxx.ovh.net systemd[1]: apache2.service: Failed with result 'exit-code'.
Hint: Some lines were ellipsized, use -l to show in full.
Я выяснил, почему apache2 разбился, комментируя каждую строку (логи чертовски бесполезны).
Мне просто нужно было создать /var/log/apache2/logs
ErrorLog /var/log/apache2/logs/gitlab.example.com_error.log
CustomLog /var/log/apache2/logs/gitlab.example.com_forwarded.log common_forwarded
CustomLog /var/log/apache2/logs/gitlab.example.com_access.log combined env=!dontlog
CustomLog /var/log/apache2/logs/gitlab.example.com.log combined
apache2 вылетал из-за отсутствия папки / каталога ...
Итак, теперь gitlab работает над доменом, и мой drupal тоже вот так:
Ровно как и хотел :)