0

TL verwendet; mit nginx-proxy aber dieses nicht wordpress:fpm Dockerfile DR warum dieses wordpress:latest Dockerfile ok ist? Und wie kann ich ein wordpress:fpm Bild mit nginx-proxy502 Fehler mit Wordpress: fpm jwilder/nginx-Proxy

Hallo,

ich erfolgreich nginx-Proxy mit einigen Wordpress-Container verwenden. zum Beispiel diese docker-compose.yml funktioniert perfekt:

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 

aber wenn ich die wordpress:fpm Bild (anstelle eines Apache-basierten Bild) verwenden Ich habe 502 Bad Gateway Fehler, und diese Meldung im Protokoll:

nginx .1 | 2017/08/14 21:29:51 [Fehler] 347 # 347: * 2447 connect() fehlgeschlagen (111: Verbindung abgelehnt) beim Verbinden mit Upstream, Client: 86.222.20.31, Server: www.my_domain.fr, Anfrage: "GET/Kontakt/HTTP/2.0" stromaufwärts "http://172.17.0.14:80/contact/" host: "www.my_domain.fr", Referrer: "https://www.my_domain.fr/"

und diese Nachricht:

root @ 9408854fae4b : /etc/nginx/conf.d# nginx -s reload 2017/08/14 21:37:35 [emerg] 671 # 671: ungültige Anzahl von Argumenten in "Upstream" -Richtlinie in /etc/nginx/conf.d/ default.conf: 53 nginx: [emerg] ungültige Anzahl von Argumenten in der "upstream" Direktive in /etc/nginx/conf.d/default.conf:53

die default.conf in Zeile 53 enthält

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

andere Domain Server 172.17.0.xx:80; so füge ich port:80 und/oder expose:80 in der docker-compose.yml-Datei. Ich schaffe es,

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

aber mit dem gleichen Fehler 502 zu erhalten.

Irgendeine Idee warum?

Grüße

+0

scheint Nähe von: https://github.com/jwilder/docker-gen/issues/196 –

Antwort

0

Der Grund dafür ist, dass beide der Bilder in ihrem Arbeits unterschiedlich sind.

Die wordpress:latest verwendet Apache auf Port 80 und reagiert auf Anfragen mit dem richtigen PHP-Skript ausgeführt. Es behandelt das HTTP-Protokoll.

Auf der anderen Seite wordpress:fpm verwendet PHP-FPM, die ein Fast CGI-Server, wird es nicht nur proxy_pass aber andere nginx Parameter wie unter

 location ~ \.php$ { 
    try_files $uri =404; 
      fastcgi_pass http://fpm:9000; 
      fastcgi_index index.php; 
      include /etc/nginx/fastcgi_params; 
    } 

nginx-proxy Bild nur Schecks erwarten, die Behälter mit einem ins Leben gerufen werden, VIRTUAL_HOST Umgebungsvariablen, überprüfen Sie ihre exposed Ports und dann erstellt nur eine Proxy-Pass-Vorlage. Was Sie brauchen, ist eine andere Vorlage dafür. Dies kann mit einer pro-Host-Konfiguration erfolgen.

Per-VIRTUAL_HOST

So fügen Sie Einstellungen auf einer pro-VIRTUAL_HOST Basis, fügen Sie Ihre Konfigurationsdatei unter /etc/nginx/vhost.d. Anders als im proxyweiten Fall, bei dem mehrere Konfigurationsdateien mit einem beliebigen Namen in .conf enden, muss die pro-VIRTUAL_HOST-Datei genau nach dem VIRTUAL_HOST benannt werden.

Damit virtuelle Hosts dynamisch konfiguriert werden können, da Backends hinzugefügt und entfernt werden, ist es am sinnvollsten, ein externes Verzeichnis als /etc/nginx/vhost.d bereitzustellen, anstatt abgeleitete Images zu verwenden oder individuelle Konfigurationen zu installieren Dateien.

Zum Beispiel, wenn Sie einen virtuellen Host mit dem Namen app.example.com haben, können Sie eine benutzerdefinierte Konfiguration für diesen Host wie folgt lauten:

$ -d -p 80:80 -p 443 laufen Docker: 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;'; echo 'client_max_body_size 100m;'; }> /path/to/vhost.d/app.example.com

die unten stehende URL

für weitere Details folgen

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

+0

danke für deinen Kommentar. Ich werde das versuchen! –