web-dev-qa-db-ja.com

DockerコンテナーへのApacheリバースプロキシ

Dockerコンテナーで実行しているWebサイトがあり、コンテナーのリバースプロキシーを実行している(ホストの8280ポートで)ホストのApacheにVirtualHostを作成しました。ので、私は持っています:

<VirtualHost *:443>
    ServerName www.example.com
    DirectoryIndex index.php index.html
    SetOutputFilter SUBSTITUTE,DEFLATE

    ProxyPass / http://localname:8280/
    ProxyPassReverse / http://localname:8280/

    Substitute "s|http://localname:8280/|https://www.example.com/|i"

    SSLEngine on
    SSLProtocol all -SSLv2
    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
    SSLCertificateKeyFile /path-to/privkey.pem
    SSLCertificateFile /path-to/cert.pem
    SSLCertificateChainFile /path-to/chain.pem

    <Proxy *>
        Order deny,allow
        Allow from all
        Allow from localhost
    </Proxy>
</VirtualHost>

<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias www.example.com

    Redirect permanent / https://www.example.com/
</VirtualHost>

プロキシは正常に機能し、ブラウザでwww.example.comを書き込むと応答がありますが、 http:// localname:828 を指すすべてのリンクがあります(ブラウザコンソールに表示されます)。混合コンテンツのエラーです。そのため、Substituteディレクティブを設定しましたが、機能しません。

Apacheドキュメントのmod_substituteの設定を使用しています。

https://httpd.Apache.org/docs/2.4/mod/mod_substitute.html

しかし、これは機能していません。 Dockerコンテナーは、デフォルト構成のbitnami/Apacheイメージに基づいています。

任意の助けいただければ幸いです。

6
Jaldazabal

わかりました、私は自分で答えを見つけました。 Substituteディレクティブの上に次の行を追加するだけです。

AddOutputFilterByType SUBSTITUTE text/html
3
Jaldazabal