Saltar al contenido

Reenvío al subdominio de GitLab con la instalación de Nginx existente

Solución:

¡Lo tengo funcionando! ¡Tan locamente emocionado!

Entonces, como dije, estaba intentando seguir estas instrucciones, pero no estaba llegando a ninguna parte, ya que parecía que faltaban instrucciones sobre cómo hacer que su enlace de instalación de Nginx existente en Gitlab.

Bueno, más abajo en la página tienen una explicación más completa para usar una instalación existente de Passenger / Nginx, y aunque al principio eso no parecía lo que quería, investigar un poco sobre Passenger dejó en claro que no era un Ruby. -sólo una cosa (sus instrucciones de instalación fáciles de encontrar requieren que lo instales como una joya ruby) y sus instrucciones para la instalación de Ubuntu me permitieron integrarlo en mi Nginx existente de manera razonablemente fácil.

A partir de ahí, solo fue seguir los pasos en la wiki, aunque con un par de cambios.

  1. La sección Instalación existente de Passenger / Nginx no menciona lo que dice la sección anterior sobre la instalación de Nginx no incluida, que debe agregar www-data al web_server['external_users'] línea en el gitlab.rb expediente.
  2. Desde que reconfiguré mi instalación de Gitlab para eliminar el Nginx incluido antes de ejecutarlo por primera vez, el archivo de registro de nginx en /var/log/gitlab/nginx/gitlab_access.log no existía, y esto provocó un error cuando Nginx intentó iniciarse, simplemente creando ese archivo en blanco y dándole el acceso de lectura / escritura adecuado hizo que funcionara como un encanto.

Estoy súper emocionado ahora, espero que cualquiera que tenga un problema tan específico en el futuro se encuentre con esto, que Wiki realmente debería actualizarse para simplemente eliminar / fusionar esas dos secciones y explicar / vincular cómo instalar Passenger en un Nginx existente instalación. Me habría ahorrado mucha confusión y pérdida de tiempo.

Ejecutar con el servidor Nginx existente en Ubuntu

  1. Instalar gitlab
  2. Edite el archivo de configuración /etc/gitlab/gitlab.rb y descomente o agregue lo siguiente:
    • nginx[‘enable’] = falso
    • unicornio[‘enable’] = falso
    • gitlab_rails[‘internal_api_url’] = ‘http://git.yourdomain.com’
    • Servidor web[‘external_users’] = [‘www-data’]
  3. Iniciar el servidor de base de datos de Postgres incluido
    • sudo gitlab-ctl iniciar postgresql
  4. Reconfigurar
    • sudo gitlab-ctl reconfigure
  5. Agregue el archivo de configuración nginx para git lab a /etc/nginx/sites-available/gitlab-example.conf y habilítelo a través de sitios habilitados
    • https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#using-a-non-bundled-web-server
  6. Habilitar pasajero para nginx
    • https://www.phusionpassenger.com/library/install/nginx/install/oss/trusty
  7. Reiniciar nginx
    • reinicio de nginx del servicio sudo
  8. Iniciar redis
    • sudo gitlab-ctl start redis

Me tomó un par de días arreglar todo, así que quería compartir los pasos necesarios para que todo funcione. Así es como instalar Nginx para un sitio web y hacerlo funcionar con un repositorio de gitlab existente (que usa una versión empaquetada de Nginx). MI repositorio de gitlab está en un subdominio de mi sitio web llamado ‘repositorios’.

Abra una terminal e instale Nginx:

sudo apt-get update
sudo apt-get install nginx

Edite el archivo de configuración /etc/nginx/nginx.conf:

Encuentre su nombre de usuario, que necesitará al configurar gitlab: En mi caso, este era ‘nginx’:

user   nginx;

Agrega esta línea dentro del bloque http {}:

$include /etc/nginx/sites-enabled/*;

Ejemplo:

http{
    include  etc/nginx/mime.types;
    include  etc/nginx/sites-enabled/*;

    (more stuff...)
}

Edite el archivo de configuración /etc/gitlab/gitlab.rb:

Cambie esta línea:

external_url 'GENERATED_EXTERNAL_URL' 

Para:

external_url 'http://www.example.com/repos'  // (whatever your server name is)  

Descomente y cambie esta línea:

nginx['enable'] = true

Para:

nginx['enable'] = false

Descomente y cambie esta línea:

web_server['external_users'] = []    

Para:

web_server['external_users'] = ['nginx']     // or whatever your nginx user is called, sometimes it's 'www-data'

Nginx necesita un archivo de configuración para gitlab:

En el repositorio de recetas de GitLab: https://gitlab.com/gitlab-org/gitlab-recipes/tree/master/web-server/nginx busque ‘gitlab-omnibus-nginx.conf’. Coloque ese archivo en la carpeta / etc / nginx / sites-enabled (es posible que deba crear la carpeta habilitada para sitios)

Edite el archivo de configuración /etc/nginx/sites-enabled/gitlab-omnibus-nginx.conf:

Cambie esta línea:

server_name YOUR_SERVER_FQDN

Para:

server_name www.example.com/repos     // (or whatever your server name is)

Deberá cambiar el puerto en el que se encuentra gitlab para que el sitio web y el servidor git funcionen.

Cambie esta línea:

listen 0.0.0.0:80 default_server;

Para:

listen 0.0.0.0:8081; 

Cambie esta línea:

listen [::]:80  default_server;

Para:

listen [::]:8081;

Edite el archivo de configuración /etc/nginx/conf.d/default.conf:

Haga de este el servidor predeterminado:

listen    80 default_server;
server_name  localhost;

Agregue una segunda ubicación para el repositorio de gitlab y use proxy_pass para señalar el puerto en el que puso Gitlab. Pongo mi Gitlab en el subdirectorio ‘repositorios’. El número 127.0.0.1 significa localhost (la misma computadora):

location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
}
location /repos/ {
    proxy_pass http://127.0.0.1:8081;
}

Ejecute estos comandos en la terminal:

sudo gitlab-ctl reconfigure
sudo service nginx restart

Su servidor web y gitlab ahora deberían estar funcionando y accesibles en línea. Nginx se establecerá de forma predeterminada en / usr / share / nginx / html cuando un usuario visite su servidor web. Allí hay un archivo .html predeterminado. Ahí es donde puede colocar archivos para su sitio web.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *