web-dev-qa-db-ja.com

Wordpress nginxリバースプロキシの背後はhttpsでは機能しません

Dockerベースのクラウドでwordpressを実行しようとしています。設定は次のとおりです。

Wordpress Cloud Setup

Mysqlアレイを実行しているサーバーがあり、Wordpress Nginxで実行されています。セットアップは this dockerfile からコピーされます。このセットアップの目的は次のとおりです。高スループットを実現し、クラウドセットアップと互換性があります。

wordpressコンテナには、mysqlアレイおよびNginxリバースプロキシと同じサブネット内のローカルIP、およびhttp(httpsではない)を実行するためのパブリックポートがあります。

wordpressコンテナーに対してSSLを実行するようにリバースプロキシが構成されています。ナビゲーションはhttpとhttpsの両方で機能しますが、HTTPSでダッシュボードにログインしようとすると、次のエラーが発生します。

このページにアクセスするための十分な権限がありません。

私が見つけた唯一の意味のあるエラーは、ダッシュボードのHTTPにログインしたときに発生します。

[04-Nov-2014 23:16:13 UTC] PHP注意:未定義のインデックス:86行目の/usr/share/nginx/www/wp-config.phpのHTTP_X_FORWARDED_PROTO

ただし、ダッシュボードはhttpで正しく機能します。

Wordpress構成ファイルに次の行を追加する必要がありました:

/ * SSLプロキシ* /

if($ _SERVER ['HTTP_X_FORWARDED_PROTO'] == 'https')$ _SERVER ['HTTPS'] = 'on';

そしてこれが原因だと思います。このヒントは 公式wordpressドキュメント =、それがないと、HTTPSはログに記録されているかどうかに関係なくCSSをロードしません。構成に合わせてこの行を変更する必要があると思いますか?

これ、またはnginxリバースプロキシ 構成ファイル のどちらか、私にはわかりません。

wordpress + nginxコンテナのnginx設定ファイルは非常に標準的であり、それは here からコピーされます。

私を助けてください:D

3
Mascarpone

私はいくつかの問題を抱えていました、私はこのように解決しました:

私のwp-config.phpでは、

私はこれらの行を追加しました:

if(strpos($ _ SERVER ['HTTP_X_FORWARDED_PROTO']、 'https')!== false)$ _SERVER ['HTTPS'] = 'on';

コードのすべての前。

それが役に立てば幸い!

5
Mauro