Apache フォワード プロキシは多くの仮想ホストと互換性がありません

Apache フォワード プロキシは多くの仮想ホストと互換性がありません

私は、Apache/2.4.29 (Unix) を搭載した HTTP サーバーとして使用している Arch Linux ARM を実行する Raspberry Pi を持っています。最近、このマシンをフォワード プロキシとして構成して、悪質なファイアウォールの背後にあるラップトップを使用しながら、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>

それ以外にも、仮想サーバーが 2 つあります。興味深いのは、有効になっている仮想ホストが 1 つだけであればプロキシが機能するのですが、別の仮想ホストを有効にするとプロキシが機能しなくなることです。

プロキシが機能しない場合は、Firefox で使用することも (プロキシが接続を拒否していると表示されます)、Corkscrew で使用することもできません (プロキシがサーバーに接続できない: メソッドが許可されていないと表示されます)。また、この状況では、Apache ログ ファイルには「サーバー構成によってクライアントが拒否されました: /etc/httpd/htdocs」と表示されます。ただし、プロキシ仮想ホストのみを有効にすると、すべてが機能するため、Corkscrew の問題ではありません。理由をご存知の方はいらっしゃいますか? ありがとうございます。

答え1

フォワード プロキシの ServerName または ServerAlias を一致させることはできません。

同じポートで両方のプロトコルを使用するには、ssh/http(s) マルチプレクサである sslh または sshttp を参照してください。

乾杯

関連情報