Apache 正向代理与许多虚拟主机不兼容

Apache 正向代理与许多虚拟主机不兼容

我有一台运行 Arch Linux ARM 的 Raspberry Pi,我将其用作 HTTP 服务器,使用 Apache/2.4.29 (Unix)。最近,我一直在尝试将此机器配置为正向代理,以便使用 corkscrew 或 proxytunnel 连接到互联网,同时使用我的笔记本电脑在邪恶的防火墙后面。因此,我添加了一个具有以下配置的虚拟服务器:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName proxy.mydomain.com
    ErrorLog "/var/log/httpd/proxy-error_log"
    CustomLog "/var/log/httpd/proxy-access_log" common

    #SetEnv force-proxy-request-1.0 1
    #SetEnv proxy-nokeepalive 1

    ProxyRequests On
    ProxyVia Block
    AllowCONNECT 443 563 22 XYZ
    <Proxy *>
        Require ip XXX.XXX.XXX.XXX
    </Proxy>

    # The reverse proxy works, but the forward doesn't
    #ProxyPass /test https://google.it
</VirtualHost>

除此之外,我还有两个其他虚拟服务器。有趣的是,如果它是唯一启用的虚拟主机,代理就可以工作,但如果我启用另一个虚拟主机,代理就不再工作了。

当代理不工作时,我无法将其与 Firefox 一起使用(它说代理拒绝连接),也无法将其与 Corkscrew 一起使用(它说代理无法连接到服务器:方法不允许);此外,在这种情况下,Apache 日志文件显示“服务器配置拒绝客户端:/etc/httpd/htdocs”。但是,当我仅启用代理虚拟主机时,一切正常,所以这不是 Corkscrew 的问题。有人知道为什么吗?谢谢。

答案1

您无法匹配正向代理的 ServerName 或 ServerAlias。

您可以看看 sslh 或 sshttp,它们是 ssh/http(s) 多路复用器,可以在相同的端口上使用两种协议。

干杯

相关内容