【问题标题】:Apache Reverse Proxy configuration - SubdomainsApache 反向代理配置 - 子域
【发布时间】:2018-02-14 08:15:07
【问题描述】:

我正在尝试将 Apache 服务器配置为具有 2 个使用反向代理的子域。我能够将流量重定向到第一个子域 (first.example.com) 并成功从 https 站点检索内容。但是,每当我尝试访问第二个子域时,我最终都会从第一个子域获取内容,并且由于路由与我的本地网站不匹配,我会得到一个未找到的页面。

我想知道我可以从我当前的配置中调整什么,以便我可以从我的本地主机站点获取内容。

这是我当前的配置:

<Proxy *>
Require all granted
</Proxy>

SSLProxyEngine On
ProxyRequests Off
SSLProxyCheckPeerCN off
SSLProxyCheckPeerExpire off
SSLInsecureRenegotiation on
SSLProxyVerify none
SSLVerifyClient none
SSLProxyCheckPeerName off

<VirtualHost first.example.com:80>
    ServerName first.example.com
    ProxyPass /first https://stackoverflow.com
    ProxyPassReverse /first https://stackoverflow.com
    ProxyPassMatch ^/(.*)$ https://stackoverflow.com/$1

</VirtualHost>

<VirtualHost second.example.com:80>
    ServerName second.example.com
    ProxyPass /site http://localhost/site
    ProxyPassReverse /site http://localhost/site
    ProxyPassMatch ^/(.*)$ http://localhost/site/$1
</VirtualHost>

非常感谢您!

最好的问候!

埃德加·马丁内斯。

【问题讨论】:

    标签: apache reverse-proxy virtualhost


    【解决方案1】:

    您当前的配置与自身发生冲突。 ProxyPassProxyPassMatch 做同样的事情(在正则表达式中),但你用不同的规则声明它。

    ProxyPass /site http://localhost/site
    

    规则说:任何访问http://second.example.com/site 的人都会收到来自http://localhost/site 的内容。如果您访问http://second.example.com/foo,您将一无所获。

    匹配线

    ProxyPassMatch ^/(.*)$ http://localhost/site/$1
    

    规则说:任何访问http://second.example.com/site 的人都会收到来自http://localhost/site/site 的内容。如果你访问http://second.example.com/foo,你会得到http://localhost/site/foo

    如果您使用匹配版本(正则表达式),那么您对于没有正则表达式版本的反向规则也很不走运。不过,我不确定您是否真的需要反向规则。

    至于为什么你的第二个请求从第一个得到结果...我不知道。

    【讨论】:

    • 你好@Grumpy,你是对的,我的配置与自身冲突。这就是我改变它的方式:NameVirtualHost *:80&lt;VirtualHost *:80&gt;ServerName first.example.comDocumentRoot "F:/root/htmldocs"&lt;/VirtualHost&gt;&lt;VirtualHost *:80&gt;&lt;VirtualHost *:80&gt;ProxyPreserveHost onServerName second.example.comProxyPass "/" "https://stackoverflow.com/"ProxyPass "/" "https://stackoverflow.com/"ProxyPassReverse "/" "https://stackoverflow.com/"@98765434 回答我的问题。
    猜你喜欢
    • 2017-10-04
    • 2015-04-26
    • 1970-01-01
    • 2010-11-14
    • 2020-10-01
    • 2020-12-29
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    相关资源
    最近更新 更多