10

以下は、Jenkins の nginx 構成ファイルです。そのほとんどは、ドキュメントで読んだとおりです。

構成ファイル:

upstream app_server {
    server 127.0.0.1:8080 fail_timeout=0;
}

server {
    listen 80;
    listen [::]:80 default ipv6only=on;
    server_name sub.mydomain.net;

location ^~ /jenkins/ {

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    if (!-f $request_filename) {
        proxy_pass http://app_server;
        break;
    }

    auth_basic "[....] Please confirm identity...";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

}

http://sub.mydomain.net/jenkinsに移動すると、サーバーでの基本認証のプロンプトが表示されます: [....] 識別を確認してください... .

これは正しいですが、適切な資格情報を入力するとすぐに、もう一度基本認証のプロンプトが表示されますが、今回は:サーバーが言う: Jenkins .

この 2 番目の非表示の basic_auth はどこから来ているのでしょうか?! 私には意味がありません。

最初のプロンプトでキャンセルを押すと、 401 認証が必要なエラーが正しく表示されます。

2番目の基本認証でCANCELを押すと(「サーバーは次のように言います:Jenkins」)、次のようになります:

HTTP ERROR 401

Problem accessing /jenkins/. Reason:

Invalid password/token for user: _____
Powered by Jetty://

何が起こっている可能性があるか知っている人はいますか?

4

2 に答える 2

0

私もこの問題を抱えていました。私の場合、ジェンキン自体でセキュリティを有効にしたことが原因で、セキュリティを無効にすると問題が解決しました。

彼らのドキュメントによると:

Apache でアクセス制御を行う場合は、Jenkins でセキュリティを有効にしないでください。これら 2 つのことが互いに干渉するためです。

https://wiki.jenkins-ci.org/display/JENKINS/Apache+frontend+for+security

起こっているように見えるのは、nginx が auth_basic 応答を jenkins に転送し、jenkins が応答で auth_basic を実行しようとすることです。この問題に対する満足のいく解決策はまだ見つかっていません。

于 2016-02-24T21:50:24.070 に答える