【问题标题】:How to re-write request URL with Apache HTTP Server?如何使用 Apache HTTP Server 重写请求 URL?
【发布时间】:2017-06-19 02:02:20
【问题描述】:

我的要求很简单。我在 Apache 中有一个转发代理,客户端将 SOAP 调用发送到这个转发代理。此代理需要能够将 URL 重写为其他内容,并将请求转发给另一个代理。

这是我目前的配置:

<Proxy *>
Order Allow,Deny
Allow from all

RewriteEngine  on
RewriteRule    "^(.*)"  "https://test.salesforce.com/services/Soap/u/20.0"  [P]

</Proxy>

AllowCONNECT 80 443 553 22


# This is the main proxy configuration
ProxyPass /Salesforce http://user:pwd@10.54.167.70:80/ retry=1 acquire=3000 timeout=600 Keepalive=On
ProxyPassReverse /Salesforce http://user:pwd@10.54.167.70:80/

我不确定我的重写规则是否正确。可以确认一下吗?

【问题讨论】:

    标签: apache mod-rewrite httpd.conf mod-proxy


    【解决方案1】:

    配置看起来非常丑陋,我不确定您要做什么,但仍然看起来您只是在尝试反向代理,而不是正向代理,我会尽力帮助解决错误反正我能做到最好。

    Rewrite,如果你想抓一个组,我猜你以后想用它:

    RewriteRule ^(.*) https://test.salesforce.com/services/Soap/u/20.0/$1  [P,L]
    

    但是为什么要重写?,您使用的是用于代理的 P 标志,您正在尝试的那里 不是重写 strong>,这是一个反向代理,所以为什么不直接:

    ProxyPass / https://test.salesforce.com/services/Soap/u/20.0/
    

    AllowConnect,这是为了允许SSL转发代理连接,为什么要指定80端口?你想让他们也通过 SSL 吗?看起来很不对劲。

    AllowCONNECT 443 553 22
    

    关于您的最后一条指令,您需要匹配斜杠以使它们正常工作,并且应该首先指定更具体的反向代理连接。首先,确保您确实需要正向代理,但在正向代理中,您可以允许/禁止后端但您不指定后端,如果您指定的后端是反向代理:

    这就是我解释你想要什么的简要说明,删除所有与转发代理相关的指令:

    ProxyPass /Salesforce/ http://user:pwd@10.54.167.70/ retry=1 acquire=3000 timeout=600 Keepalive=On
    ProxyPassReverse /Salesforce/ http://10.54.167.70/
    
    SSLProxyEngine on
    ProxyPass / https://test.salesforce.com/services/Soap/u/20.0/
    ProxyPassReverse / https://test.salesforce.com/services/Soap/u/20.0/
    

    如果您可以进一步指定您提到的“转发代理”部分,则可以完善此答案。

    【讨论】:

    • 谢谢@ezra-s。实际上我的用例比这复杂得多。让我向您解释一下:我有一个非常古老的应用程序,它向公司代理发送请求。由于公司规定的一些安全限制,此应用程序现在需要将请求发送到中间人代理,并且需要将请求转发到公司代理。因此,应用程序将 SOAP 请求发送到转发代理,然后将 URL 重写为目标 URL(位于云中),然后公司代理发送到云。希望这会有所帮助
    • 所以,基本上,“test.salesforce.com/services/Soap/u/20.0”是我的最终 URL。但是应用程序需要将请求发布到 URL A(转发代理),然后转发到 URL B(公司代理),然后发送到 salesforce。谢谢!
    猜你喜欢
    • 2014-01-20
    • 2014-11-19
    • 2015-03-11
    • 2010-10-14
    • 2015-03-12
    • 2014-03-19
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多