0

server1 と server2 という 2 つの同一の仮想ホストが構成されているリバース プロキシとして機能する Apache サーバーがあります (以下を参照)。server1.mydomain.com を指す server2.mydomain.com の CNAME DNS レコードがあります。http:// server1 .mydomain.com/some/resource にアクセスすると、バックエンド サーバーは、 server2 .mydomain.comを含む X-Forwarded-Host ヘッダーを認識します。これはバグですか、それとも設定が間違っていますか?

ありがとう。

-b

私の仮想ホストは次のようになります。

非 SSL (SSL に書き換え)

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName server1.mydomain.com
    ServerAlias server1
    ServerSignature off

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName server2.mydomain.com
    ServerAlias server2
    ServerSignature off

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

SSL

<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName server1.mydomain.com
    ServerSignature off

    DocumentRoot ...

    <Directory ... />

    Header        edit Location ^http:(.*)$ https:$1
    RequestHeader set X-Forwarded-Proto https

    ProxyVia off
    ProxyRequests Off
    ProxyPreserveHost On

    SSLProxyEngine On
    ProxyPass / https://back-end.mydomin.com/
    ProxyPassReverse / https://back-end.mydomain.com/

    ...
<VirtualHost>
<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName server2.mydomain.com
    ServerSignature off

    DocumentRoot ...

    <Directory ... />

    Header        edit Location ^http:(.*)$ https:$1
    RequestHeader set X-Forwarded-Proto https

    ProxyVia off
    ProxyRequests Off
    ProxyPreserveHost On

    SSLProxyEngine On
    ProxyPass / https://back-end.mydomin.com/
    ProxyPassReverse / https://back-end.mydomain.com/

    ...
<VirtualHost>
4

1 に答える 1

1

私の悪い。SSL 仮想ホストが重複していました (Apache を開始/停止したときに警告に気づきませんでした)。解決策は、Ports.confにNameVirtualHost *:443を追加することでした。

-b

于 2013-11-05T15:23:41.587 に答える