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 樣式)
乾杯
在這上面花了一整天的時間。我終於找到了一個完全可行的解決方案:
- 首先,您需要更改
location /
(Catch all) 所以它不會嘗試獲取子目錄- 然後你需要為
location /subfolder_name/
你想要服務的每個應用程序創建一個- 最後,您需要配置 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/
andlocation /site/
塊有內容。希望它可以幫助某人。:)
(我用的是:ubuntu + nginx + drupal 8.2)