我在为 Sharepoint 服务器设置 Apache 反向代理时遇到了一个奇怪的问题。当我通过代理登录 Sharepoint 时,其他人也通过代理打开 Sharepoint,但他已经用我的帐户登录了。您知道可能出了什么问题吗?
这是 Apache 配置:
<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>
答案1
以下是我在过去 4 个小时所尝试的方法:
我能想到的唯一合理解释是,sharepoint 服务器已启用 keepalive,并且多个 apache 客户端通过 apache 和 sharepoint 之间的相同“keepalived”连接进行代理。
如果是这种情况,以下两行(插入到您的 vhost 配置中)可以解决问题:
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
或者,您也可以在 SharePoint 服务器上禁用 Keepalive。在 Apache 上禁用/启用 Keepalive 应该没有什么区别。
编辑:这不适用于 NTLM 身份验证,因为 NTLM 是面向连接的,并且需要保持活动状态。实际上,问题已经在这里得到解答: 设置 mod_proxy 以将 http 身份验证传递给服务器
这篇 SF 文章提供了一个工作配置,其中启用了保持活动功能。
答案2
ntlm passthru auth
我使用MSExchange RPCoHTTP/HTTPS
CentOS 6为 Microsoft Exchange 完成了此操作。
我用过:
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
尝试一下并告诉我结果如何。