NGINX + Drupal 安装在 Linux 服务器的子文件夹中

NGINX + Drupal 安装在 Linux 服务器的子文件夹中

我正在尝试配置服务器,使其具有以下可访问的地址:

domain.com/webmail (webmail app)
domain.com/app (node.js app)
domain.com/mailadmin (mail administration app)
domain.com/site (drupal website)

我的根目录是/var/www

其中有以下目录:

/var/www/webmail
/var/www/app
/var/www/postfixadmin
/var/www/site

我尝试了几种配置,但都不起作用(有些配置只起作用,显示主页或显示所有页面,但没有任何 CSS 样式)

干杯

答案1

经过两天的折腾,我终于找到了一个完全可行的解决方案:

  1. 首先,您需要更改location /(全部捕获),以便它不会尝试获取子目录
  2. 然后你需要location /subfolder_name/为每个你想要服务的应用程序创建一个
  3. 最后,您需要配置 drupal 位置和重写,以便它捕获请求/drupal_subfolder/并为 Drupal 路由器重写它。

以下是代码:

location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri =404;
    }

    location /app/ {
         // reverse proxy configuration of a node.js app
         ...
    }

    location /webmail/ {

    }

    location /mailadmin/ {

    }

    location @drupal_rewrite {
            rewrite ^/site/(.*)$ /site/index.php?$1;
    }

    location /site/ {
            try_files $uri @drupal_rewrite;
    }

在我的配置(上文)中,只有location /app/location /site/块有内容。

希望它能对某人有所帮助。:)

(我使用的是:ubuntu + nginx + drupal 8.2)

相关内容