Использование Nginx с Nextcloud / Website / Делопроизводство параллельно

Я пытаюсь запустить Nextcloud, домашнюю страницу и документы в разных местах, но не могу понять, как правильно настроить мой nginx-config.

Мое рабочее дерево выглядит так:

/ Var / WWW /
| -> сайт
| -> nextcloud
| -> оформление документов

Моя домашняя страница доступна через web.domain.com, а моя Nextcloud доступна через cloud.domain.com.
Теперь я хочу, чтобы документы были доступны на web.domain.com/notes.
Index.php Paperwork находится в подпапке «paperwork / frontend / public».

Это моя попытка решить эту проблему (без всей ssl и облачной части):

server{
listen 443 ssl http2;
server_name web.domain.com;
error_log /var/log/nginx/debug.log debug;

root /var/www/website;
location / {
index index.php index.html;
}

location /notes {
alias /var/www/paperwork/frontend/public;
index index.php index.html index.htm;
try_files $uri $uri/index.php;
}

location ~ /(nextcloud|backups) {
deny all;
return 403;
}
location ^~ /nextcloud/ {
deny all;
return 402;
}
location ^~ /nextcloud/ {
deny all;
return 402;
}

location ~ \.php$ {
try_files $uri =404;
alias /var/www/paperwork/frontend/public;
index index.php index.html index.htm;

fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
include fastcgi_params;

}
}

Я испробовал много разных решений, но я получил 404, потому что он использует неправильный каталог и не может найти /var/www/notes/index.php (или похожие ошибки), или nginx возвращает мне только index.php как файл-скачать.

Спасибо заранее!

1

Решение

Используйте вложенные блоки местоположения для более чистого решения. Обратите внимание ^~ модификатор, чтобы избежать двусмысленности. Увидеть этот документ для большего.

Пытаться:

location ^~ /notes {
alias /var/www/paperwork/frontend/public;
index index.php index.html index.htm;

if (!-e $request_filename) { rewrite ^ /notes/index.php last; }

location ~ \.php$ {
if (!-f $request_filename) { return 404; }

fastcgi_pass unix:/var/run/php5-fpm.sock;

include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}

Eсть давняя ошибка в отношении использования alias с try_files, Увидеть это предостережение на использование if,

Включают fastcgi_params перед использованием fastcgi_param директива, так как она может молча перезаписать ваши параметры.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]