web-dev-qa-db-ja.com

Nginx proxy_pass to wordpress docker container

こんにちはみんな、私が小学校の過ちを犯しているとすみませんが、私は本当にここで迷っています。

私はUbuntu 16.04サーバーをNginx(Dockerコンテナーではなく、ホストマシンで実行)とwordpress(Dockerコンテナーで)に設定しました。

Docker Hub Wordpress repo:(2つ以上のリンクを投稿することはできませんが、公式のWordpress repo))

なんらかの構成の後、なんとかnginxを実行し、wordpressコンテナーを使用しました。wordpress Webサイトに未加工のIPアドレスとポートを介してアクセスすると、正常に機能します。ただし、nginxからコンテナーにproxy_passを実行すると、私のwordpress WebサイトがすべてのCSSを失ったようです。皮肉なことに、ページはまだロードされます。

次に例を示します:(画像へのハイパーリンク)

http:// [IPアドレス]:51080/wp-admin/install.php

http://example.com/wp-admin/install.php

sites-available

upstream example.com {
    server localhost:51080;
}

server {
    listen  80;
    server_name example.com;

    location / {
        proxy_pass http://localhost:51080;
    }
}

ドッカー実行コマンド

docker run --name example.com -d -v /docker/example.com:/var/www/html wordpress

/ etc/hosts(次の行をファイルに追加しました)

[IP address] example.com

助けてくれてありがとう!

編集:

  • /var/log/nginx/error.log-空です(はい、確認しました。このファイルに記録しています)
  • /var/log/nginx/access.log

ログエントリ:

<IP Address> - - [11/Mar/2017:11:33:35 -0500] "GET /wp-admin/install.php HTTP/1.1" 200 11144 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8"
3
kawaijoe

アップストリームが正しいフロントエンドサーバー名を認識できるように、いくつかのヘッダーを設定すると役立つ場合があります。詳細は このドキュメント を参照してください。

たとえば、私は使用します:

proxy_set_header    Host                $Host;
proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
proxy_set_header    X-Forwarded-Proto   $scheme;
proxy_set_header    Accept-Encoding     "";
proxy_set_header    Proxy               "";

また、HOMEとSITEURLの設定が正しいことを確認してください。詳細は このドキュメント を参照してください。

7
Richard Smith