
我一直在嘗試在我的本地網路上運行的 CentOS 7 伺服器上設定 GitLab,這樣我在下學期就有地方可以儲存和同步我的文件和專案。我按照找到的綜合包安裝的安裝說明進行操作這裡。
現在,設定完成後,我無法以 root 使用者身分登入。我發現我可以使用 Microsoft Edge 進行身份驗證,但 Google Chrome 不起作用。我斷言,無論我是透過 IP 還是位址(在路由器 DNS 伺服器中本地分配)訪問該站點,行為都是相似的。當我嘗試使用 Chrome 登入時,網頁應用程式掛起並永久加載。
我使用 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"
我嘗試清除瀏覽歷史記錄/快取/cookie,希望它能解決我在配置 GitLab 時可能遇到的問題,但似乎沒有任何幫助。我應該要提到的是,我只透過防火牆開啟了連接埠 80,而不是連接埠 443。 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 似乎根本不驗證。里程似乎有所不同,我希望行為未定義或定期更改,因此我不會在這裡記錄哪些瀏覽器的行為。