Problemas de configuration de Gitlab :: Conflicto de puerto de unicornio NGINX

Logré configurar parcialmente Gitlab en un server Linux CentOS con Apache, Git, PHP, PostGreSQL y MySQL. Estoy ejecutando la versión Chef Cookbook . Tengo las rpm de aquí . Quería usarlo para administrar mi repository Git mejor y más visualmente y esta parecía ser una buena opción. Pero ahora me encuentro con problemas para que funcione.

Solo para que realmente funcione y actualice todos los files, decidí volver a ejecutar la configuration usando gitlab-ctl reconfigure . La segunda carrera funcionó:

 Chef Client finished, 4 resources updated gitlab Reconfigunetworking! 

Vea el logging completo aquí: http://pastebin.com/cE7DYv6w

El hoster ya había puesto NGINX en 8080 sin entrar en discusión con Apache corriendo en el puerto 80 donde tenemos un proyecto LAMP en ejecución. Pero ahora el server web Unicorn de Ruby parece estar en conflicto con NGINX. He trabajado un poco con NGINX, no mucho y esta es mi primera puñalada en Gitlab. De todos modos, esto es lo que descubrí con la ayuda de mi hoster.

Cuando inicio session en testserver.domain.net y paso el siguiente command:

netstat -ln |grep 8080 veo

 tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 

Entonces, algo se está ejecutando en 8080. De acuerdo con mi hoster, debería funcionar con 0.0.0.0:8080. Y cuando verificamos qué se está ejecutando en ese puerto, vemos

 netstat -tupln |grep 8080 tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 21627/unicorn maste 

Cuando verificamos el process id 21627, vemos

 cat /proc/21627/cmdline unicorn master -E production -c /var/opt/gitlab/gitlab-rails/etc/unicorn.rb /opt/gitlab/embedded/service/gitlab-rails/config.ru 

Ese es un process de Ruby, y no un process de NGINX.

Entonces NGINX parece estar en conflicto con Unicornio.

Y cuando revisamos los loggings de nginx vemos que nginx no puede ponerse en marcha debido a esto:

 tail -f /var/log/gitlab/nginx/error.log 2014/07/28 09:43:10 [emerg] 23122#0: bind() to 0.0.0.0:8080 failed (98: Address already in use) 2014/07/28 09:43:10 [emerg] 23122#0: still could not bind() 2014/07/28 09:43:12 [emerg] 23123#0: bind() to 0.0.0.0:8080 failed (98: Address already in use) 2014/07/28 09:43:12 [emerg] 23123#0: bind() to 0.0.0.0:8080 failed (98: Address already in use) 2014/07/28 09:43:12 [emerg] 23123#0: bind() to 0.0.0.0:8080 failed (98: Address already in use) 2014/07/28 09:43:12 [emerg] 23123#0: bind() to 0.0.0.0:8080 failed (98: Address already in use) 2014/07/28 09:43:12 [emerg] 23123#0: bind() to 0.0.0.0:8080 failed (98: Address already in use) 2014/07/28 09:43:12 [emerg] 23123#0: still could not bind() 

Busqué en Google Unicorn.rb y encontré este enlace . También leí eso:

Unicorn es un server HTTP para aplicaciones Rack diseñado para servir a clientes rápidos en conexiones de baja latencia y alto ancho de banda, y aprovechar las características en kernels Unix / Unix. Los clientes lentos solo deben atenderse colocando un proxy inverso capaz de almacenar por completo tanto la request como la respuesta entre Unicorn y clientes lentos.

Cuando /var/opt/gitlab/gitlab-rails/etc/unicorn.rb el file /var/opt/gitlab/gitlab-rails/etc/unicorn.rb , veo que usa 8080. El problema es que parece que Unicorn debería funcionar junto con NGINX, así que tal vez no debería cambiar el puerto.

¿Qué paso debo tomar para que Gitlab funcione? ¿Puede trabajar Gitlab sin Unicornio? Yo pensaría que no. ¿Debo elegir otro puerto para él o quizás para NGINX?

Debe anular los puertos en /etc/gitlab/gitlab.rb . No te metas con /var/opt/gitlab/... porque cualquier configuration manual se perderá después de una reconfiguration. En particular, lea sobre Configurar el puerto de escucha NGINX . En la página de descargas hay una oración: para la resolución de problemas y las opciones de configuration, consulte el file Léame de Omnibus GitLab . Me pregunto si esto no lo ven las personas: / Si no, deberíamos dejarlo más claro.

Para agregar a los comentarios de Axil. Tuve que cambiarlo en el file /var/opt/gitlab/gitlab-rails/etc/unicorn.rb también. Un reinicio después de eso funcionó, no perdí mis configuraciones. El maestro de unicornio no estaba eligiendo mis cambios del file /etc/gitlab/gitlab.rb incluso después de varios reinicios.

Debe actualizar el file /etc/gitlab/gitlab.rb.

Asegúrese de modificar la línea que está modificando cuando modifique el file que está descomentando. Está utilizando chef, por lo que si el file gitlab.rb está configurado correctamente cuando ejecutas sudo gitlab-ctl reconfigure; actualizará el file correspondiente correctamente. Luego sudo gitlab-ctl restart para reiniciar los services.

sudo lsof -Pni |grep <port number> es su amigo al determinar conflictos de puertos

La documentation sugiere establecer 'nginx [' listen_port '] = 8080' pero cuando lo hice, el unicornio no pudo vincular el puerto 8080. Establecí el puerto nginx en 8888 y funcionó. Esto sugiere que para establecer el puerto nginx en 8080, es necesario cambiar el unicornio del puerto pnetworkingeterminado de 8080 a otra cosa, pero no exploré esa posibilidad. Sería bueno si el ejemplo para configurar el puerto nginx fuera una configuration que funcionaría en la configuration pnetworkingeterminada, que es la mía, además de lo que sé, solo la instalé esta mañana.