2017-08-15 12 views
0

TLを使用して、DR なぜこのwordpress:latest Dockerfilenginx-proxyとOKであるが、この1つはないwordpress:fpm Dockerfile?そして、どのように私は私が成功したいくつかのワードプレスのコンテナでnginxのプロキシを使用しnginx-proxy502エラー:FPMがjwilder/nginxのプロキシ

こんにちは、

wordpress:fpm画像を使用することができます。例えば完全にこのdocker-compose.yml作品:

db: 
    image: mariadb 
    environment: 
    - MYSQL_ROOT_PASSWORD=password 
    volumes: 
    - /home/stack/my_domain/bdd:/var/lib/mysql 

wordpress: 
    image: wordpress 
    links: 
    - db:mysql 
    environment: 
    - VIRTUAL_HOST=my_domain.fr,www.my_domain.fr 
    - LETSENCRYPT_HOST=www.my_domain.fr 
    - [email protected]_domain.fr 
    env_file: 
    - ./env 

    volumes: 
    - /home/stack/my_domain/wordpress:/var/www/html 

しかし、私は(代わりに画像をベースにApacheの)wordpress:fpm画像を使用する場合、私は502不正なゲートウェイのエラーを持っており、ログでこのメッセージ:

nginxの.1 | 2017/08/14 21:29:51 [エラー] 347#347:* 2447 connect()が失敗しました(111:接続が拒否されました)、クライアントへの接続中:86.222.20.31、server:www.my_domain.fr、request: "GET /コンタクト/ HTTP/2.0"、上流: "http://172.17.0.14:80/contact/"、ホスト: "www.my_domain.fr"、リファラー: "https://www.my_domain.fr/"

このメッセージ:

ルート@ 9408854fae4b :/etc/nginx/conf.d# nginx -s reload 2017/08/14 21:37:35 [emerg] 671#671:/etc/nginx/conf.d/の "upstream"ディレクティブの引数の数が正しくありません。 default.conf:53 nginx:[emerg] "upstream"ディレクティブの引数の数が無効です/etc/nginx/conf.d/default.conf:53

53行では、default.confが

upstream mydomain.fr { 
           ## Can be connect with "bridge" network 
         # my_domain_wordpress_1 
         server 172.17.0.14:9000; 
} 

他のドメインを含むサーバー172.17.0.xx:80;を持っているので、私はport:80および/または内expose:80を追加docker-compose.ymlファイル。私は得ることができる

upstream mydomain.fr { 
           ## Can be connect with "bridge" network 
         # my_domain_wordpress_1 
         server 172.17.0.14:80; 
} 

しかし、同じ502のエラーで。

任意のアイデアなぜですか?

よろしく

+0

に近いと思われる詳細については、下記URLをフォロー/ docker-gen/issues/196 –

答えて

0

理由は、画像の両方が彼らの作業で異なっていることです。

wordpress:latestは、ポート80でApacheを使用し、適切なPHPスクリプトを実行してリクエストに応答します。 HTTPプロトコルを処理します。一方wordpress:fpm

はそれだけで proxy_passを期待したが、容器を使用して起動している
 location ~ \.php$ { 
    try_files $uri =404; 
      fastcgi_pass http://fpm:9000; 
      fastcgi_index index.php; 
      include /etc/nginx/fastcgi_params; 
    } 

nginx-proxy

下の画像だけチェックのような他のnginxのパラメータされていない、高速CGIサーバでPHP-FPMを、使用しています VIRTUAL_HOST環境変数で、公開されているポートを確認して、プロキシパステンプレートを作成するだけです。あなたが必要とするのはこれのための別のテンプレートです。これは、ホストごとの構成を使用して実行できます。

ごとVIRTUAL_HOST

/etc/nginx/vhost.dの下で、あなたの設定ファイルを追加し、当たりVIRTUAL_HOST毎に設定を追加します。 .confで終わる任意の名前を持つ複数の設定ファイルを許可するプロキシワイドの場合とは異なり、VIRTUAL_HOSTごとのファイル名は、VIRTUAL_HOSTの後に正確に指定する必要があります。

バックエンドを追加したり削除したりして仮想ホストを動的に構成できるようにするには、派生イメージの使用や個別設定のマウントとは対照的に、外部ディレクトリを/etc/nginx/vhost.dとしてマウントするのが最も理にかかりますファイル。

あなたはapp.example.comという名前の仮想ホストを持っている場合たとえば、次のように、あなたはそのホストのカスタム構成を提供することができます:443 -p 80:80 -p

$]ドッキングウィンドウの実行-dを: 443 -v /path/to/vhost.d:/etc/nginx/vhost.d:ro -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy $ {echo 'server_tokens off;';エコー 'client_max_body_size 100m;'; https://github.com/jwilder:}> /path/to/vhost.d/app.example.com

https://github.com/jwilder/nginx-proxy#per-virtual_host

+0

ご意見ありがとうございます。私はこれを試してみよう! –

関連する問題