![无法通过 Google Chrome 登录 GitLab Web UI](https://linux22.com/image/1600963/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%20Google%20Chrome%20%E7%99%BB%E5%BD%95%20GitLab%20Web%20UI.png)
我一直在尝试在本地网络上运行的 CentOS 7 服务器上设置 GitLab,以便在即将到来的学期中有一个地方存储和同步我的文件和项目。我按照安装说明进行操作,找到综合软件包安装这里。
现在,设置完成后,我无法以 root 用户身份登录。后来我发现我可以使用 Microsoft Edge 进行身份验证,但 Google Chrome 不起作用。我断言,无论我是通过 IP 还是地址(在路由器 DNS 服务器中本地分配)访问网站,行为都是相似的。当我尝试使用 Chrome 登录时,Web 应用程序会挂起,并不断加载。
我使用 gitlab-ctl 检查了 NGINX 的日志,看起来当我使用 chrome 时 POST 请求根本无法通过。以下是一些示例输出:
==> /var/log/gitlab/nginx/gitlab_access.log <==
192.168.1.52 - - [18/Aug/2019:18:15:47 -0600] "GET / HTTP/1.1" 302 98 "" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362"
192.168.1.52 - - [18/Aug/2019:18:15:57 -0600] "POST /users/sign_in HTTP/1.1" 302 85 "http://192.168.1.2/users/sign_in" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362"
192.168.1.52 - - [18/Aug/2019:18:15:57 -0600] "GET / HTTP/1.1" 200 8684 "http://192.168.1.2/users/sign_in" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362"
192.168.1.52 - - [18/Aug/2019:18:16:03 -0600] "GET / HTTP/1.1" 200 8673 "" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362"
192.168.1.52 - - [18/Aug/2019:18:16:06 -0600] "GET /users/sign_out?nav_source=navbar HTTP/1.1" 302 97 "http://gitlab.lan/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362"
192.168.1.52 - - [18/Aug/2019:18:16:06 -0600] "GET /users/sign_in HTTP/1.1" 200 4718 "http://gitlab.lan/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362"
192.168.1.52 - - [18/Aug/2019:18:16:12 -0600] "POST /users/sign_in HTTP/1.1" 302 84 "http://gitlab.lan/users/sign_in" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362"
我尝试清除浏览历史记录/缓存/cookies,希望能够解决我在配置 GitLab 时可能遇到的问题,但似乎没有任何帮助。我应该提到,我只通过防火墙打开了端口 80,而不是端口 443。我计划仅通过 HTTP 运行 GitLab。Microsoft Edge 成功访问和验证了该网站,这表明以这种方式配置 GitLab 应该不会有问题。
有谁知道是什么问题?
我正在跑步CentOS Linux release 7.6.1810 (Core)
,,GitLab Version 12.1.6-ee Revision d05ee0a9c12
而且Google Chrome 76.0.3809.87 (Official Build) (64-bit)
答案1
对于遇到类似问题的人,我找到了原因:
顶级域名gitlab.lan
, .lan
, 未在 中注册IANA 的 TLD 数据库。显然,如果域名不是官方 TLD,某些浏览器将不允许与域名建立某些类型的连接(在本例中,Chrome 不允许 POST 方法)。
现在,在我的问题中,我说通过 IP 访问也不起作用。我相信这个问题是在我配置 GitLab 时引起的,指定它将附加到的域为gitlab.lan
。我预计 GitLab 会使用该地址呈现指向自身的链接。这样,它会尝试 POST 到gitlab.lan
用户是通过 IP 还是域访问该站点。
解决方案是使用有效的 TLD 而不是.lan
网站域名(.com
,,.net
等等......)。
至于哪些浏览器在访问网站之前会验证域名 TLD,Chrome 似乎时好时坏,而 Edge 似乎根本不验证。情况似乎各不相同,我预计行为是不确定的或经常变化的,所以我不会在这里记录哪些浏览器的行为是这样的。