我正在面对一个奇怪的问题与我的Apache反向代理服务器的安装Sharepoint。 当我通过代理login到Sharepoint,然后其他人通过代理打开Sharepoint时,他已经使用我的帐户login。 你有什么想法可能是错的吗?
这是Apache的configuration:
<VirtualHost *:443> SSLEngine On SSLProxyEngine On SSLCertificateFile /etc/apache2/ssl/sharepoint.pem ProxyPreserveHost Off ProxyRequests Off ProxyHTMLExtended On ProxyHTMLLogVerbose On LogLevel Debug ProxyHTMLURLMap https://sharepoint.portal.de/ / SetOutputFilter INFLATE;proxy-html;DEFLATE Header edit Location ^https(\:\/\/sharepoint.portal.de)(.*)$ https://192.168.120.19$2 ProxyPass / https://sharepoint.portal.de:443/ ProxyPassReverse / https://sharepoint.portal.de:443/ </VirtualHost>
以下是我最后4个小时尝试的内容:
我能想到的唯一合理的解释是,sharepoint服务器启用了keepalive,并且通过apache和sharepoint之间相同的“keepalived”连接代理了多个apache客户端。
如果是这种情况,以下两行(将被插入到您的虚拟主机configuration中)showld解决了这个问题:
SetEnv force-proxy-request-1.0 1 SetEnv proxy-nokeepalive 1
或者,您也可以禁用Sharepoint服务器上的Keepalive。 在apache上禁用/启用keepalive应该没有区别。
编辑:这将不适用于NTLM身份validation,因为NTLM是面向连接,并需要保持活动。 其实这个问题已经在这里回答了: 设置mod_proxy把httpauthentication传给服务器
这篇文章给出了一个工作configuration,启用了保持活动。
我在CentOS 6上用ntlm passthru auth和MSExchange RPCoHTTP/HTTPS为Microsoft Exchange MSExchange RPCoHTTP/HTTPS 。
我用过:
HTTPD 2.4.10 mod_proxy_msrpc
这些是我做的步骤:
yum -y install gcc make patch pcre-devel openssl-devel libuuid-devel cd wget http://www.apache.org/dist/httpd/httpd-2.4.10.tar.gz wget "httpd-2.4.10-deps.tar.gz" tar xzvf httpd-2.4.10.tar.gz tar xzvf httpd-2.4.10-deps.tar.gz cd httpd-2.4.10 ./configure --enable-so --enable-deflate --enable-expires --enable-headers --enable-rewrite --with-crypto --enable-session-crypto --with-included-apr --with-included-apr-util make make install ---------- yum -y install git mkdir /root/gitrepo cd /root/gitrepo git clone https://github.com/bombadil/mod_proxy_msrpc cd mod_proxy_msrpc cd src /usr/local/apache2/bin/apxs -c mod_proxy_msrpc.c msrpc_pdu_parser.c msrpc_sync.c ---------- Use "OutlookAnywherePassthrough On" on VirtualHost section to allow RPCoHTTP/HTTPS
试试看,让我知道它是如何去的。