👋

Docker + Traefikで運用するDrupalのリバースプロキシ設定

2024/07/04に公開

概要

以下の記事で紹介したDocker + Traefikを用いて、HTTPS化したDrupalを運用していました。

https://zenn.dev/nakamura196/articles/c607c7834aad0d

この時、Drupalのデフォルト設定の場合、以下のように、httpのURLが設定されていました。

この問題として、以下の記事になるように、例えばGoogleアカウントでログインするようにした際、リダイレクトURLがhttpから始まるURLとなり、Google Cloud コンソールにはhttpsから始まるURLを入力する必要があり、この齟齬によって、認証ができないケースなどがありました。

https://drupalfan.com/【drupal】googleアカウントでログインできるようにする/

本記事では、この問題に対処するための方法についてメモします。

方法

以下の記事が参考になりました。

https://www.58bits.com/blog/canonical-urls-https-and-drupal-89-reverse-proxy-settings

以下の3行を追加することで、Drupalの内部的にもhttpsから始まるURLに設定されました。

/web/sites/default/setttings.php
...
$settings['reverse_proxy'] = TRUE;
$settings['reverse_proxy_addresses'] = array($_SERVER['REMOTE_ADDR']);
$settings['reverse_proxy_trusted_headers'] = \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_FOR | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PROTO | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PORT;
...

まとめ

考慮不足の点があるかもしれませんが、参考になりましたら幸いです。

Discussion