首页 > 解决方案 > 登录重定向循环中的 Gitlab 客户端

问题描述

我一直在做一些工作,试图更新我们的 gitlab 服务器。在某个地方,配置中的某些内容发生了变化,现在我无法访问 Web 客户端。后端正确启动,当我运行rake gitlab:check一切都恢复为绿色。nginx 也是如此,据我所知它工作正常。但是,当我尝试在浏览器中访问登录页面时,我不断收到有关“重定向过多”的错误消息。

查看浏览器控制台,我可以看到它反复尝试重定向到登录页面,直到浏览器放弃并抛出错误。我环顾四周,大多数答案似乎都涉及直接进入登录页面,然后从管理设置更改登录页面。当我尝试时,我遇到了同样的问题。显然,我域上的任何页面都希望重定向到登录名,从而使我陷入无限循环。

我还在 nginx 日志中看到了一些可能相关的错误。当我尝试点击登录页面时,错误日志显示

open() "/usr/local/Cellar/nginx/1.15.9/html/users/sign_in" 失败(2:没有这样的文件或目录)

这甚至是 gitlab html 视图的正确目录吗?如果不是我该如何改变它?

对此的任何帮助将不胜感激。

环境:

OSX 10.11.6 埃尔卡皮坦

Gitlab 8.11

nginx 1.15.9

我的配置文件。我删除了一些注释掉的行以节省空间。

nginx.config

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    include servers/*;
}

nginx/服务器/gitlab

upstream gitlab-workhorse {

server unix:/Users/git/gitlab/tmp/sockets/gitlab-workhorse.socket fail_timeout=0;
}

server {

  listen 0.0.0.0:8081;
  listen [::]:8081;
  server_name git.my.server.com; ## Replace this with something like gitlab.example.com
  server_tokens off; ## Don't show the nginx version number, a security best practice

  ## See app/controllers/application_controller.rb for headers set

  ## Individual nginx logs for this GitLab vhost
  access_log  /var/log/nginx/gitlab_access.log;
  error_log   /var/log/nginx/gitlab_error.log;

  location / {
    client_max_body_size 0;
    gzip off;

    ## https://github.com/gitlabhq/gitlabhq/issues/694
    ## Some requests take more than 30 seconds.
    proxy_read_timeout      300;
    proxy_connect_timeout   300;
    proxy_redirect          off;

    proxy_http_version 1.1;

    proxy_set_header    Host                $http_host;
    proxy_set_header    X-Real-IP           $remote_addr;
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
    proxy_set_header    X-Forwarded-Proto   $scheme;

    proxy_pass http://gitlab-workhorse;
  }

}

标签: macosnginxconfigurationgitlab

解决方案


经过几天的挖掘,我终于找到了答案。在某些时候,我的默认配置文件(/etc/default/gitlab)被更改了。无论出于何种原因,我的文本编辑器决定将 gitlab_workhorse_options 分成两行。结果,gitlab 缺少 authSocket 和文档根的参数,只是使用默认值。如果这还不够糟糕,则行拆分从 $ 字符开始,因此看起来 nano 只是在进行自动换行。


推荐阅读