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

我试图像这样configuration服务器有这个可访问的地址:

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 

我已经尝试过几种configuration,没有一个能够工作(有些工作部分,显示主页或显示所有页面,但没有任何CSS样式)

干杯

经过两天花了一整天的时间。 我终于find一个完全可行的解决scheme

  1. 首先,您需要更改location / (全部捕获),以便不尝试获取子目录
  2. 然后,您需要为每个要提供服务的应用程序创build一个location /subfolder_name/
  3. 最后,你需要configurationdrupal的位置和重写,以便捕获/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; } 

在我的configuration(上面)中只有location /app/location /site/块有内容。

希望它可以帮助别人。 🙂

(我用:ubuntu + nginx + drupal 8.2)