2016-03-25 16 views
1

drupalのインストールが正常に動作しました。私はそれをnginxリバースプロキシの背後にあるDocker Containerで移行しようとしました。すべてうまく見えますが、Drupalでhttpとリンクしているため、ロードできない.jsと.cssファイルがあります。エラーは次のとおりです。Drupal - ssl証明書を使用した場合の混在コンテンツエラー

Mixed Content: The page at https://proxy.xx.xx/ was loaded 
over HTTPS, but requested an insecure stylesheet 
http://proxy.xx.xx/sites/default/files/css/css_xE-rWrJf- 
fncB6ztZfd2huxqgxu4WO-qwma6Xer30m4.css'. This request has been 
blocked; the content must be served over HTTPS. 

私はそれらの7のようなものを持っていると私はそれらのファイルは、Drupalのか、どのようにhttpをhttpsに変更するために呼ばれている場所を見つけることができません。

よろしくお願いいたします。

答えて

0

何が間違っているかを見つけました。 DrupalはsslなしでNginxプロキシと通信していました。いくつかの設定とそれは大丈夫だった。

+0

将来のユーザーに役立つようにこの問題を修正した設定の変更について詳しく教えてください。 – dckuehn

+0

NginxプロキシからDrupalへのSSLトラフィックを有効にした可能性があります。 @Wilhelm Uschtrinのソリューションは、より優れた(二重SSL暗号化なし)構成が簡単であるため(外部エンドでSSLを設定するだけです)、この場合はNginxプロキシが望ましいからです。 – sanzante

1

さてさて、私はDrupalののsettings.phpに以下を追加することで動作するようになった:

$conf['reverse_proxy'] = TRUE; 
$base_url = 'https://whatever-your-domain-is.com'; 
$conf['reverse_proxy_addresses'] = array('internal_nginx_proxy_ip'); 
$conf['reverse_proxy_header'] = 'HTTP_X_FORWARDED_FOR'; 

これは、一緒に日本赤十字社letsencrypt companionコンテナでjwilderのnginx-proxyコンテナ(S)のために動作します。 nginxコンテナはHTTPS/SSL(証明書)を処理しており、内部でDrupalコンテナとHTTPをやりとりしています。 Drupalコンテナは3つのENV VARS VIRTUAL_HOST、LETSENCRYPT_HOST、LETSENCRYPT_EMAILで実行するだけで、セットアップしてその魔法を働かせる必要があります。

唯一の欠点:DrupalコンテナのApacheログには、nginxプロキシの内部IPが表示されます。しかし、nginxのログには正しいクライアントIPが表示されており、Drupalは明らかにそれらを正しく取得しているので、それは私にとって些細な迷惑です。

settings.phpへの追加はカスタム/手動設定にも当てはまるはずです。

関連する問題