首页 > 解决方案 > Nginx 作为使用 Kerberos 的应用程序的负载均衡器

问题描述

我目前正在使用 nginx 作为位于两个不同服务器上的 tomcat 应用程序的负载均衡器。该应用程序使用 NTLM 进行身份验证,并且 nginx 运行良好(调用 nginx 地址时会自动登录有效用户)。

现在我想对使用 Kerberos 进行 Windows 身份验证的应用程序执行相同的操作。我正在使用相同的配置(当然是不同的应用程序/IP)测试 nginx,但登录不起作用。我应该使用 kerberos 自动登录,但是请求运行 nginx 的服务器的用户名和密码:

“需要身份验证”

我需要在我的 nginx 配置中进行哪些更改?或者这不是配置问题?

        worker_processes  1;
        events {
            worker_connections  1024;
        }


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

            proxy_cache_path /Temp/NGINX_cache/ keys_zone=backcache:10m;

            sendfile        on;
            keepalive_timeout  65;


            upstream myapp {

                hash $remote_addr consistent;

                # List of myapp application servers
                server 10.54.76.7:8080;
                server 10.54.73.8:8080;


            }



            server {
                listen       80;
                server_name  localhost;



                location /myapp/ {
                    proxy_pass http://myapp;
                    proxy_set_header Host            $host;
                    proxy_set_header X-Forwarded-For $remote_addr;

                }


                # Return a temporary redirect to the /tomcat-app/ directory
                # when user requests '/'
                location = / {
                    return 302 /myapp/;
                }



                # redirect server error pages to the static page /50x.html

                error_page   500 502 503 504  /50x.html;
                location = /50x.html {
                    root   html;
                }



                proxy_read_timeout 900s;
                client_max_body_size 5000M;
            }
        }

亲切的问候

亚历克斯

标签: tomcatnginxsingle-sign-onkerberos

解决方案


您的 Nginx 安装需要使用auth_pam模块构建,该模块不是标准构建的一部分。

如果运行nginx -V 2>&1 | grep -o auth-pam返回一些东西,那么你很幸运,否则你必须自己重建并添加模块


推荐阅读