Để giải quyết pbs phân tầng, tôi đang làm việc cục bộ với tên miền sản xuất thực, nhưng đằng sau một proxy, để cài đặt drupal và cấu hình máy chủ web hoàn toàn giống nhau (trên một số conf, việc nghe IP có thể khác nhau, tùy thuộc vào ip lắng nghe sản xuất).
Vì vậy, tôi đã có một proxy trả lời cho http: //mydomain.local , ủy quyền cho http: //www.mydomain.tld , nhưng trên một IP cục bộ.
Với nginx, trong vhost conf địa phương:
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;
Đối với vhost ủy nhiệm, giống như trong sản xuất
server_name www.mydomain.tld;
Và trong cài đặt của tôi.
if (isset($_SERVER['HTTP_X_PROXY_HOST'])) {
$base_url = 'http://' .$_SERVER['HTTP_X_PROXY_HOST'];
}
Với conf này, tôi có thể đồng bộ tất cả các tệp drupal VÀ cấu hình cơ sở dữ liệu VÀ máy chủ giữa rất nhiều cài đặt drupal (dev và sản xuất trong trường hợp của tôi nhưng có thể là bất cứ điều gì bạn muốn).