From d27abc312cdb55b11ede610ee12d5f4284c79cba Mon Sep 17 00:00:00 2001 From: "srvproxy001.itguys.com.br" Date: Mon, 22 Sep 2025 11:01:53 -0300 Subject: [PATCH] =?UTF-8?q?[Auto-Sync]=20Atualiza=C3=A7=C3=A3o=20das=20con?= =?UTF-8?q?figura=C3=A7=C3=B5es=20em=20srvproxy001.itguys.com.br=20-=20202?= =?UTF-8?q?5-09-22=2011:01:53?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cloud.grupopralog.com.br.conf | 124 +++++++++++------- 1 file changed, 79 insertions(+), 45 deletions(-) diff --git a/nginx/sites-available/cloud.grupopralog.com.br.conf b/nginx/sites-available/cloud.grupopralog.com.br.conf index 3a0404e..86824cb 100644 --- a/nginx/sites-available/cloud.grupopralog.com.br.conf +++ b/nginx/sites-available/cloud.grupopralog.com.br.conf @@ -1,55 +1,52 @@ # ============================================================================== -# ARQUIVO DE CONFIGURAÇÃO NGINX PARA NEXTCLOUD +# ARQUIVO DE CONFIGURAÇÃO NGINX PARA NEXTCLOUD E OFFICE ONLINE # DOMÍNIO: cloud.grupopralog.com.br # AUTOR: Gemini AI (Especialista NGINX) -# VERSÃO: 2.0 +# VERSÃO: 2.1 # # DESCRIÇÃO: # Esta configuração atua como um proxy reverso seguro e otimizado para uma -# instância do Nextcloud. +# instância do Nextcloud com integração a um servidor Office Online +# (como Collabora Online ou OnlyOffice). # -# DESTAQUES DA CONFIGURAÇÃO: -# - A. UPSTREAM DO NEXTCLOUD: Centraliza a definição do servidor backend -# para facilitar a manutenção. -# - B. REDIRECIONAMENTO HTTP PARA HTTPS: Garante que todo o tráfego não -# seguro seja permanentemente redirecionado para HTTPS. -# - C. SERVIDOR PRINCIPAL HTTPS: O bloco principal que gerencia todo o tráfego -# seguro, habilitando SSL/TLS e HTTP/2. -# - D. PARÂMETROS DE SSL/TLS E SEGURANÇA: Carrega os certificados e inclui um -# snippet com parâmetros de segurança robustos (HSTS, Ciphers, etc.). -# Adiciona cabeçalhos de segurança recomendados pelo Nextcloud. -# - E. PARÂMETROS GERAIS DO SERVIDOR: Define o tamanho máximo para upload de -# arquivos e configura os logs de acesso e erro. -# - F. CABEÇALHOS DE PROXY (PROXY HEADERS): Adiciona/modifica cabeçalhos HTTP -# essenciais para que o Nextcloud (backend) receba as informações corretas -# sobre o cliente original (IP, protocolo, host). -# - G. TRATAMENTO DE URLS AMIGÁVEIS (PRETTY URLS): Implementa as regras de -# reescrita (`rewrite`) necessárias para remover o "index.php" das URLs, -# tornando-as mais limpas e amigáveis. -# - H. ROTAS ESPECÍFICAS (LOCATIONS): -# H.1. /.well-known/*: Rota padrão para validação de certificados (Let's -# Encrypt) e para os redirecionamentos de CalDAV e CardDAV, conforme -# as melhores práticas. -# H.2. Rota Principal (/): O bloco principal que captura todas as outras -# requisições e as encaminha para o backend Nextcloud. +# DESTAQUES DA CONFIGURAÇÃO (Versão 2.1): +# - I. UPSTREAM DO OFFICE ONLINE: Adicionado um novo upstream para o servidor +# do Office, facilitando a manutenção. +# - J. ROTAS DO OFFICE ONLINE: Adicionadas novas seções `location` para +# redirecionar as requisições específicas do Office (/hosting/discovery, +# /hosting/wopi, /op/) para o backend correto, garantindo o +# funcionamento da integração. +# - K. SUPORTE A WEBSOCKET: As rotas do Office incluem a configuração +# necessária para o funcionamento de WebSockets, essencial para a +# edição colaborativa em tempo real. # -# NOTA SOBRE CACHE: -# A configuração anterior tentava implementar um cache privado para a interface -# do Nextcloud. Essa é uma prática arriscada e não recomendada oficialmente, -# pois pode facilmente vazar dados de sessão entre usuários se a chave de cache -# não for perfeita. Removemos essa lógica em favor da estabilidade e segurança. -# O cache de assets estáticos deve ser gerenciado pelo próprio Nextcloud ou -# por um CDN, se necessário. +# DESTAQUES ANTERIORES: +# - A. UPSTREAM DO NEXTCLOUD: Centraliza a definição do servidor backend. +# - B. REDIRECIONAMENTO HTTP PARA HTTPS: Garante tráfego seguro. +# - C. SERVIDOR PRINCIPAL HTTPS: Bloco principal com SSL/TLS e HTTP/2. +# - D. PARÂMETROS DE SSL/TLS E SEGURANÇA: Configurações robustas de segurança. +# - E. PARÂMETROS GERAIS DO SERVIDOR: Limite de upload e logs. +# - F. CABEÇALHOS DE PROXY (PROXY HEADERS): Informações corretas para o backend. +# - G. TRATAMENTO DE URLS AMIGÁVEIS (PRETTY URLS): URLs limpas. +# - H. ROTAS ESPECÍFICAS (LOCATIONS): Para CalDAV, CardDAV e a aplicação. # ============================================================================== # ------------------------------------------------------------------------------ # A. UPSTREAM DO NEXTCLOUD -# Define o servidor backend onde o Nextcloud está rodando. # ------------------------------------------------------------------------------ upstream nextcloud_backend { server 172.16.253.12; } +# ------------------------------------------------------------------------------ +# I. UPSTREAM DO OFFICE ONLINE (NOVO) +# Define o servidor backend onde o Office Online (Collabora/OnlyOffice) está rodando. +# ------------------------------------------------------------------------------ +upstream office_backend { + server 172.16.253.101; +} + + # ============================================================================== # B. BLOCO HTTP: Redirecionar para HTTPS # ============================================================================== @@ -80,11 +77,10 @@ server { # -------------------------------------------------------------------------- # D. PARÂMETROS DE SSL/TLS E SEGURANÇA # -------------------------------------------------------------------------- - ssl_certificate /etc/letsencrypt/live/cloud.grupopralog.com.br/fullchain.pem; # managed by Certbot - ssl_certificate_key /etc/letsencrypt/live/cloud.grupopralog.com.br/privkey.pem; # managed by Certbot - include /etc/nginx/snippets/ssl_params.conf; # Carrega parâmetros de segurança (HSTS, Ciphers, etc.) + ssl_certificate /etc/letsencrypt/live/cloud.grupopralog.com.br/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/cloud.grupopralog.com.br/privkey.pem; + include /etc/nginx/snippets/ssl_params.conf; - # Cabeçalhos de segurança recomendados pelo Nextcloud add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always; add_header X-Content-Type-Options nosniff always; add_header X-Frame-Options "SAMEORIGIN" always; @@ -95,7 +91,7 @@ server { # -------------------------------------------------------------------------- # E. PARÂMETROS GERAIS DO SERVIDOR # -------------------------------------------------------------------------- - client_max_body_size 10G; # Permite uploads de até 10GB + client_max_body_size 10G; access_log /var/log/nginx/access.log detailed_proxy; error_log /var/log/nginx/error.log; include /etc/nginx/snippets/custom_errors.conf; @@ -109,14 +105,52 @@ server { location = /.well-known/carddav { return 301 $scheme://$host/remote.php/dav; } location = /.well-known/caldav { return 301 $scheme://$host/remote.php/dav; } - # H.2. Rota Principal da Aplicação + # -------------------------------------------------------------------------- + # J. ROTAS DO OFFICE ONLINE (NOVO) + # Estas rotas capturam as requisições para o Office e as encaminham + # para o backend correto, em vez de irem para o Nextcloud. + # É crucial que elas venham ANTES da rota principal "location /". + # -------------------------------------------------------------------------- + + # J.1. Rota de descoberta do serviço Office (discovery) + location ^~ /hosting/discovery { + proxy_pass http://office_backend; + 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 $scheme; + } + + # J.2. Rota WOPI para manipulação de arquivos + location ^~ /hosting/wopi/ { + proxy_pass http://office_backend; + 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 $scheme; + } + + # J.3. Rota da interface e comunicação WebSocket + # (o caminho pode ser /lool/ ou /op/ dependendo da versão) + location ^~ /op/ { + proxy_pass http://office_backend; + 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 $scheme; + + # K. Habilita suporte a WebSocket, essencial para edição em tempo real + include /etc/nginx/snippets/websocket_params.conf; + } + + + # H.2. Rota Principal da Aplicação Nextcloud location / { # ---------------------------------------------------------------------- # G. TRATAMENTO DE URLS AMIGÁVEIS (PRETTY URLS) - # Estas regras reescrevem as URLs para remover o "index.php". # ---------------------------------------------------------------------- rewrite ^\/\.well-known\/(card|cal)dav /remote.php/dav/ permanent; - rewrite ^(\/remote\/.+)(\/)$ $1 permanent; # Remove a barra final de URLs do remote + rewrite ^(\/remote\/.+)(\/)$ $1 permanent; # Passa a requisição para o backend proxy_pass http://nextcloud_backend; @@ -134,9 +168,9 @@ server { # Parâmetros adicionais de proxy proxy_http_version 1.1; proxy_connect_timeout 60s; - proxy_read_timeout 3600s; # Essencial para sync de arquivos grandes + proxy_read_timeout 3600s; proxy_send_timeout 3600s; - proxy_buffering off; # Recomendado para uploads/downloads grandes + proxy_buffering off; proxy_request_buffering off; } }