【问题标题】:Drupal 8 + Nginx reverse proxy as subdirDrupal 8 + Nginx 反向代理作为子目录
【发布时间】:2016-03-23 14:03:03
【问题描述】:

我们有一个在 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 开始,在 settings.php 中 $base_url 已被弃用,原因在此解释https://www.drupal.org/node/2528988

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

任何帮助将不胜感激!

问候, T

【问题讨论】:

  • 你有没有想过这个问题?我也无法在子目录中设置 D8。这似乎是不可能的。

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-15
    • 2018-11-23
    • 2020-08-21
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-17
    相关资源
    最近更新 更多