Перейти к основному содержимому

Настройка обратного проксирования для Nextcloud и редакторов ONLYOFFICE

Введение​

При установке нескольких серверных решений на разные устройства может возникнуть проблема с настройкой прокси-сервера.

Рассмотрим случай с тремя разными устройствами с

Установка проводилась через Docker и порт 80.

Для корректного подключения необходимо:

  • Настроить Nginx так, чтобы запрос к http://nginx открывал Nextcloud,
  • Настроить Nextcloud для работы с редакторами документов, доступными на http://nginx/editors/.

В данной статье описывается правильная настройка прокси-сервера для nginx, Nextcloud и ONLYOFFICE Docs.

Шаг 1. Настройка прокси для Nextcloud​

Для проксирования Nextcloud через nginx поменяйте настройки nginx и добавьте его адрес в список доверенных доменов Nextcloud.

Необходимые настройки находятся в контейнере nginx в /etc/nginx/conf.d/default.conf. Отредактируйте файл следующим образом:

server {
listen 80;
location / {
proxy_pass_header Server;
proxy_pass http://nextcloud/;
}
}

Обратите внимание на косую черту в конце пути proxy_pass.

Обновите настройки nginx с помощью команды:

service nginx reload

Теперь добавьте домен http://nginx. Откройте настройки в контейнере Nextcloud в /var/www/html/config/config.php. Найдите или добавьте раздел trusted_domain и добавьте адрес nginx. Когда все изменения вступят в силу, эта часть конфигурации будет выглядеть следующим образом:

'trusted_domain' => (0 => 'nextcloud', 1 => 'nginx')

Шаг 2. Настройка прокси для редакторов документов​

Снова откройте default.conf на сервере nginx и добавьте еще одно расположение

location /editors/ {
proxy_pass http://onlyoffice/;
}

Однако для работы редакторов этого недостаточно. По умолчанию редактор документов генерирует ссылки на ресурсы, используя адрес из запроса. Пока редактор не подключен к прокси-серверу, он будет генерировать ссылки вне зависимости от виртуального пути (например, http://nginx/apps/files/). Это неправильно, поскольку /apps/files/ находится на сервере http://onlyoffice/.

Чтобы это исправить, необходимо указать в заголовке запроса путь для генерирования ссылок с помощью заголовка «X-Forwarded-Host».

В начале файла конфигурации добавьте следующий код:

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Forwarded-Host $http_host/editors;
server {
listen 80;
location / {
proxy_pass_header Server;
proxy_pass http://nextcloud/;
}
location /editors/ {
proxy_pass http://onlyoffice/;
}
}

Шаг 3. Установка коннектора ONLYOFFICE-Nextcloud​

Для связи инстансов ONLYOFFICE и Nextcloud используйте готовый коннектор. Коннектор доступен на GitHub, но самый простой способ — установить его из магазина приложений Nextcloud.

После установки в меню settings появится новая опция. В ней необходимо задать адрес редакторов ONLYOFFICE — http://nginx/editors/.