使用NGINX对microsoft dynamic365 CRM做反代负载均衡配置

发布时间 2023-03-30 15:46:54作者: 荒野游侠

1.  微软的crm是基于NTLM认证的

2. nginx默认情况下是无法转法ntlm认证的

要解决此问题,有2个思路:

1. 对CRM启用基于IFD的(基于互联网的身份认证服务)

2. 配置NGINX支持NTLM协议

本例采用第二种方式:

第一步,对于upstream的配置:关键在于添加了keepalive参数。

upstream crm {
    ip_hash;
    server 10.1.5.09:80  max_fails=2 fail_timeout=2;
    server 10.1.5.10:80  max_fails=2 fail_timeout=2;
    keepalive 60;
}

第二步,在Server区的location上下文中,注意下面加粗字体配置。

    location / {
        proxy_pass            http://crm;
        proxy_set_header Host $host;
        include               custom.conf.d/proxy.conf;
        proxy_http_version 1.1;
        proxy_set_header Connection "";

    }

 配置完成后,重启nginx即可。

注意: 有人说,这样的情况下,可能出现用户的会话混乱的情况,就是一个用户跑到了另一个用户的会话下。

所以建议采用IFD,启用ADFS的方式来解决这个问题。