You have set English as your preferred language. Would you like to go to the English help center?

Shopware hinter einem HTTP Load Balancer

Shopware 6.6

In Shopware 6.6 muss zunächst eine framework.yaml konfiguriert werden, die die Shopware interne TRUSTED_PROXIES Konfiguration aktiviert.


# config/packages/framework.yaml

framework:
    trusted_proxies: '%env(TRUSTED_PROXIES)%'


Anschließend kann in der .env.local die TRUSTED_PROXIES Konfiguration eingerichtet werden.

# .env.local

TRUSTED_PROXIES=127.0.0.1,10.20.0.0/24

Tragen Sie in der Konfiguration TRUSTED_PROXIES die Quell-IP-Adresse des Load Balancers ein. Wir empfehlen hier den Betrieb innerhalb eines creoline VPC-Netzwerkes, um die interne Infrastruktur zu demilitarisieren.


Konfiguration im Load Balancer

Damit der Request von Shopware authentifiziert werden kann, muss der X-Forwarded-Proto Header durch den Load Balancer an den App-Server gesendet werden. Durch den Abgleich der tatsächlichen Quell-IP kann sichergestellt werden, dass nur der autorisierte Load Balancer Zugriff erhält und Shopware die korrekten URLs generiert.


Konfiguration in HaProxy

# /etc/haproxy/haproxy.cfg

backend shopware
   mode http
   # [...]

   http-request add-header X-Forwarded-Proto %[var(req.scheme)]
   # Necessary for https URL Generation

Durch die Angabe der dynamischen Variable %[var(req.scheme)] wird das HTTP-Schema aus dem ursprünglichen Request an die HaProxy-Instanz verwendet, um sicherzustellen, dass der übermittelte X-Forwarded-Proto Header dem tatsächlichen weitergeleiteten HTTP-Schema entspricht.


Konfiguration in NGINX

# /etc/nginx/conf.d/shopware.conf

location / {
   proxy_pass http://10.20.X.X:80;
   # [...]

   proxy_set_header X-Forwarded-Proto $scheme;
}

Durch die Angabe der dynamischen Variable $scheme wird das HTTP-Schema aus dem ursprünglichen Request an die NGINX-Instanz verwendet, um sicherzustellen, dass der übermittelte X-Forwarded-Proto Header dem tatsächlichen weitergeleiteten HTTP-Schema entspricht.