Drupal 8 + Nginx反向代理作为子目录

时间:2016-03-23 14:03:04

标签: php nginx drupal reverse-proxy drupal-8

我们有一个运行在nginx + php-fpm上的drupal 8的web服务器。我们想使用反向代理服务器将d8网站发布为www.somedomain.com/drupal8

nginx配置工作正常:

location /article_dev/ {
    proxy_buffers 32 32k;
    proxy_buffer_size 32k;
    proxy_pass http://192.168.158.148:80/;
    proxy_set_header    Host $host;
    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header    X-Forwarded-Proto $scheme;
    proxy_set_header    X-Forwarded-By $server_addr:$server_port;
    proxy_set_header    X-Real-IP $remote_addr;
}

并在settings.php中设置了反向代理设置。问题是,当我访问externaldomain.com/article_dev/时,我看到d8页面,但没有加载css等,因为资源的路径是:externaldomain.com/path_to_ressource而不是externaldomain.com/article_dev/path_to_ressource

在早期版本的Drupal(6和7)中可以设置全局$ base_url来完成这个技巧。自D8起,$ base_url已在settings.php中被删除,原因如下https://www.drupal.org/node/2528988

然而,这并没有让我更接近实现将第二个站点代理为子目录的目标......

任何帮助将不胜感激!

此致 Ť

1 个答案:

答案 0 :(得分:0)

我认为它应该可以通过启用多站点并在sites.php中的$ sites数组中添加一行来实现,所以它看起来像这样:

$sites = array(
    ..existing code..
    'externaldomain.com.path_to_resource.article_dev'  => '<site>',
);