Настройка обратного проксирования для Nextcloud и редакторов ONLYOFFICE
Введение
При установке нескольких серверных решений на разные устройства может возникнуть проблема с настройкой прокси-сервера.
Рассмотрим случай с тремя разными устройствами с
- nginx — http://nginx,
- Nextcloud — http://nextcloud,
- редакторами ONLYOFFICE — http://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/.