
私は、次の学期にファイルやプロジェクトを保存して同期する場所を確保するために、ローカルネットワークで実行しているCentOS 7サーバーにGitLabをセットアップしようとしています。私は、見つかったomnibusパッケージのインストール手順に従いました。ここ。
セットアップ後、ルート ユーザーとしてログインできなくなりました。その後、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"
GitLab の設定中に何かが滞っているかもしれないので、閲覧履歴/キャッシュ/Cookie を消去してみましたが、何も役に立たないようです。firewalld 経由でポート 443 ではなくポート 80 のみを開いたことに注意してください。GitLab は HTTP 経由でのみ実行する予定です。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 はそのアドレスを使用してリンクをレンダリングしていたと予想しています。このようにして、ユーザーが IP 経由でサイトgitlab.lan
にアクセスしたか、ドメイン経由でアクセスしたかに関係なく、POST を試みます。gitlab.lan
.lan
解決策は、Web サイトのドメイン ( .com
、.net
など)の代わりに有効な TLD を使用することです。
ウェブサイトにアクセスする前にドメイン TLD を検証するブラウザについては、Chrome はうまく動作したりしなかったりするようですし、Edge はまったく検証しないようです。動作はさまざまで、動作は未定義か定期的に変更されると予想されるため、ここではどのブラウザがどのように動作するかは文書化しません。