Para resolver pbs de teste, estou trabalhando localmente com o nome de domínio de produção real, mas atrás de um proxy, para que a instalação do drupal e a configuração do servidor da web sejam estritamente idênticas (em alguns conf, a escuta de IP pode ser diferente, dependendo do ip de escuta em Produção).
Portanto, eu tinha um proxy respondendo por http: //mydomain.local , fazendo proxy para http: //www.mydomain.tld , mas em um IP local.
Com o nginx, no local 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;
Para o vhost proxied, assim como na produção
server_name www.mydomain.tld;
E no meu settings.php
if (isset($_SERVER['HTTP_X_PROXY_HOST'])) {
$base_url = 'http://' .$_SERVER['HTTP_X_PROXY_HOST'];
}
Com esta conf, eu posso sincronizar todos os arquivos drupal, banco de dados e configuração do servidor entre várias instalações do drupal (desenvolvimento e produção no meu caso, mas pode ser o que você quiser).