web-dev-qa-db-fra.com

Comment servir d'autres vhosts à côté du serveur Gitlab Omnibus? [Solution complète étape par étape]

J'ai installé Gitlab CE sur une édition serveur Ubuntu 14.04 dédiée avec package Omnibus.

Maintenant, je voudrais installer trois autres hôtes virtuels à côté de gitlab.

Deux sont des applications Web node.js lancées par un non-root user fonctionnant sur deux ports > 1024, la troisième est une application Web PHP qui nécessite le lancement d'un serveur Web.

Il y a:

  • un registre privé de bower fonctionnant sur 8081 (node.js)
  • un registre npm privé exécuté sur 8082 (node.js)
  • un registre privé composer (PHP)

Mais Omnibus listen 8 et ne semble utiliser ni Apache2 ni Nginx, donc je ne peux pas les utiliser pour servir mon PHP app et reverse) -proxy mes deux autres applications de nœuds.

Ce que la mécanique de service Gitlab Omnibus utilise pour listen 80? Comment dois-je créer les trois autres hôtes virtuels pour pouvoir fournir les vHosts suivants?

  • gitlab.mycompany.com (:80) -- déjà utilisé
  • bower.mycompany.com (:80)
  • npm.mycompany.com (:80)
  • packagist.mycompany.com (:80)
26
Rémi Becheras

Comme je ne voudrais pas changer le serveur nginx pour gitlab (avec quelques autres intégrations), le moyen le plus sûr serait la solution ci-dessous.

aussi selon

Gitlab: Ningx => Insertion de paramètres personnalisés dans la configuration NGINX

éditez le /etc/gitlab/gitlab.rb de votre gitlab:

nano /etc/gitlab/gitlab.rb

et inscrivez-vous dans nginx ['custom_nginx_config'] et modifiez comme ci-dessous assurez-vous de décommenter

# Example: include a directory to scan for additional config files
nginx['custom_nginx_config'] = "include /etc/nginx/conf.d/*.conf;"

créez le nouveau répertoire de configuration:

mkdir -p /etc/nginx/conf.d/
nano /etc/nginx/conf.d/new_app.conf

et ajoutez du contenu à votre nouvelle configuration

# my new app config : /etc/nginx/conf.d/new_app.conf
# set location of new app 
upstream new_app {
  server localhost:1234; # wherever it might be
}
# set the new app server
server {
  listen *:80;
  server_name new_app.mycompany.com;
  server_tokens off;
  access_log  /var/log/new_app_access.log;
  error_log   /var/log/new_app_error.log;
  proxy_set_header Host      $Host;
  proxy_set_header X-Real-IP $remote_addr;
  location / { proxy_pass  http://new_app; }
}

et reconfigurez gitlab pour insérer les nouveaux paramètres

gitlab-ctl reconfigure

redémarrer nginx

gitlab-ctl restart nginx

pour vérifier le journal des erreurs nginx:

tail -f /var/log/gitlab/nginx/error.log
22
Danny