Microsoft dynamic CRM 的反向代理设置
背景说明:
CRM的高可用架构可以使用微软自带的NLB技术,但是这个容易导致网络泛洪,所以必须网络工程师做很多的努力,例如配置NLB的VIP对应的静态MAC路由等。但是在复杂的网络环境下,例如三层交换机存在多路复用(高可用)的架构下,这就带来了问题,用户在访问CRM应用的时候,会出现丢包,首次访问网站无法打开网页,需要刷新才可以,并且网站速度较慢。
在网络工程师无法解决此问题的背景下,为了确保CRM应用的高可用性,所以可以考虑采用反向代理的方式来解决,此时就会考虑到Nginx、lighttpd、caddy等软件。nginx当然会作为首选考虑的对象,但是在反代过程中,会一直弹出登录对话框,让输入AD账号密码(CRM应用必须与AD域认证),其主要的原因是因为在登录CRM应用的过程中,使用的NTLM协议进行传输,而免费版的NGINX并不支持,虽然网络上有相关的解决方案,但是问题较多,例如会出现会话错乱、使用过程中频繁出现登录对话框等问题。
解决办法:
1. 购买付费版的Nginx plus,据说可以解决问题。
2.caddy2 有个http.reverse_proxy.transport.http_ntlm模块,可以完美解决,亲测有效。
3.haproxy据说也可以解决,但是没有亲测,可以参考如下链接说明(https://stackoverflow.com/questions/41936501/reverse-proxying-an-ntlm-protected-website)