SCROLL
Среднее время на прочтение: 2 мин.

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

В случае если у вас, так же как и у меня ONLYOFFICE Docs находится за NAT и требуется обеспечить его доступность из внешней сети, то можно настроить обратное проксирование Nginx.

Для безопасности чтобы не выставлять наружу сервер ONLYOFFICE Docs, лучше настроить обратное проксирование запросов при помощи Nginx для ONLYOFFICE Docs. Ниже мой вариант конфигурации обратного прокси.

Вместо параметров в конфигу, указываете свои:

  • <DNS_SERVER_NAME> — указываем DNS виртуального сервера.
  • <IP_ADDRESS_ONLYOFFICE> — указываем IP адреса где развернут ONLYOFFICE Docs
  • ssl_certificate — сертификат для данного виртуального сервера.
  • ssl_certificate_key — закрытый ключ для данного виртуального сервера.
upstream docservice {
  server <IP_ADDRESS_ONLYOFFICE>;
}

map $http_upgrade $proxy_connection {
    default upgrade;
    ""      close;
}

map $http_x_forwarded_proto $proxy_x_forwarded_proto {
    default $http_x_forwarded_proto;
    ""      $scheme;
}

server {
    listen 80;
    server_name <DNS_SERVER_NAME>;

    return 301 https://<DNS_SERVER_NAME>$request_uri;
}

server {
    listen 443 ssl;
    http2 on;

    server_name <DNS_SERVER_NAME>;

    access_log  /var/log/nginx/access.log;
    error_log  /var/log/nginx/error.log;

    ssl_certificate /etc/ssl/fullchain.pem;
    ssl_certificate_key /etc/ssl/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_dhparam  /etc/ssl/certs/dhparam.pem;
    ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
    ssl_prefer_server_ciphers on;
    
    add_header X-Content-Type-Options nosniff; 

    location / {
        proxy_pass http://docservice;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $proxy_connection;
    
        include proxy_params;
    }
    
    location /editors/ {
        proxy_pass http://docservice/editors/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $proxy_connection;
    
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
        proxy_set_header X-Forwarded-Host $http_host;
    
        proxy_read_timeout 3600s;
        proxy_send_timeout 3600s;
    }
    
    location /admin/ {
        proxy_pass http://docservice/admin/;
        include proxy_params;
    }
}

Для генерации Diffie–Hellman ключа шифрования, выполните команду:

openssl dhparam -out /etc/ssl/dhparams.pem 2048

Проверяем корректность конфига и перезапускаем службу Nginx.

systemctl reload nginx
 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ

Обсуждение

0 комментариев

Нет комментариев.