Для разрешения промежуточных pbs я работаю локально с реальным рабочим доменным именем, но за прокси-сервером, так что установка drupal и конфигурация веб-сервера строго идентичны (на некоторых конфах прослушивание IP может отличаться в зависимости от ip прослушивания в производство).
Итак, у меня был прокси, отвечающий за http: //mydomain.local , с прокси на http: //www.mydomain.tld , но на локальном IP.
С помощью nginx, в локальной vhost conf:
server_name mydomain.local;
set $proxied_server_name www.mydomain.tld;
set $proxied_cookie_domain mydomain.tld;
# then generic proxy conf
proxy_set_header Host $proxied_server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# My param added for drupal absolute url construction
proxy_set_header X-Proxy-Host $host;
# For headers rewriting (Location or Refresh)
proxy_redirect http://$proxied_server_name/ http://$host/;
proxy_cookie_domain $proxied_server_name $host;
# and for drupal auth, with cookies without sub-domain
proxy_cookie_domain $proxied_cookie_domain $host;
Для прокси Vhost, как в производстве
server_name www.mydomain.tld;
И в моем settings.php
if (isset($_SERVER['HTTP_X_PROXY_HOST'])) {
$base_url = 'http://' .$_SERVER['HTTP_X_PROXY_HOST'];
}
С помощью этого conf я могу синхронизировать все файлы drupal, а также базу данных и конфигурацию сервера между многими установками drupal (в моем случае это dev и production, но может быть как угодно).