WordPress + Traefik + Docker-Compose

Von | Oktober 20, 2023

WordPress kann man sehr gut mit Docker betreiben. Traefik bietet sich als Reverse Proxy davor an wenn man mehr als eine Instanz auf einem Host betreiben möchte. Traefik kümmert sich dann um die Erstellung der Let’s encrypt Zertifikate und nimmt den Traffic aus dem Internet an, dient als HTTPS-Endpunkt und leitet die Anfragen über HTTP an die in anderen Docker-Containern laufenden WordPress Instanzen weiter.

WordPress braucht für das saubere Funktionieren die Möglichkeit per cURL auf sich selber zu zugreifen. Hier nun macht das Konstrukt Probleme. Sichtbar werden diese in der „Site health“

„The REST API encountered an error“ und „Your site could not complete a loopback request“

Wenn WordPress URL’s auf Localhost oder auf die eigene URL zugreifen will, dann scheitern diese weil der Port 443 im Docker Container von WordPress gar nicht offen ist.

Die Problemlösung ist, dass man in Traefik auf dem externen Interface „aliases“ anlegt:

### Traefik v2.1
### docker-compose.yml
##START
version: '3'
services:
  traefik:
    image: traefik:v2.10
    container_name: traefik-v2
    restart: always
    networks:
      web:
        aliases:
          - domain1.com
          - www.domain2.de
          - andereDomain.com
    ports:
      - 80:80
      - 443:443
.
.
.
.
networks:
  web:
    external: true

Die unter „aliases“ gelisteten Namen werden im Docker internen DNS angelegt und zeigen auf die interne IP der Traefik-Instanz, so dass Aufrufe innerhalb der Docker Container auf URL’s in diesen Domains am Traefik ankommen, dort von HTTPS auf HTTP umgesetzt werden und wieder am Webserver im Container ankommen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert