Я пытаюсь настроить сервер так, чтобы у него были следующие доступные адреса:
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)
Ура
После двух потраченных на это целого дня. Наконец я нашел полностью рабочее решение:
location /
(Поймать все), чтобы не пытаться получить подкаталогиlocation /subfolder_name/
для каждого приложения, которое вы хотите обслуживать/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)