[Auto-Sync] Atualização das configurações em srvproxy001.itguys.com.br - 2025-09-22 11:01:53

This commit is contained in:
srvproxy001.itguys.com.br 2025-09-22 11:01:53 -03:00
parent 9d95177037
commit d27abc312c
1 changed files with 79 additions and 45 deletions

View File

@ -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 # DOMÍNIO: cloud.grupopralog.com.br
# AUTOR: Gemini AI (Especialista NGINX) # AUTOR: Gemini AI (Especialista NGINX)
# VERSÃO: 2.0 # VERSÃO: 2.1
# #
# DESCRIÇÃO: # DESCRIÇÃO:
# Esta configuração atua como um proxy reverso seguro e otimizado para uma # 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: # DESTAQUES DA CONFIGURAÇÃO (Versão 2.1):
# - A. UPSTREAM DO NEXTCLOUD: Centraliza a definição do servidor backend # - I. UPSTREAM DO OFFICE ONLINE: Adicionado um novo upstream para o servidor
# para facilitar a manutenção. # do Office, facilitando a manutenção.
# - B. REDIRECIONAMENTO HTTP PARA HTTPS: Garante que todo o tráfego não # - J. ROTAS DO OFFICE ONLINE: Adicionadas novas seções `location` para
# seguro seja permanentemente redirecionado para HTTPS. # redirecionar as requisições específicas do Office (/hosting/discovery,
# - C. SERVIDOR PRINCIPAL HTTPS: O bloco principal que gerencia todo o tráfego # /hosting/wopi, /op/) para o backend correto, garantindo o
# seguro, habilitando SSL/TLS e HTTP/2. # funcionamento da integração.
# - D. PARÂMETROS DE SSL/TLS E SEGURANÇA: Carrega os certificados e inclui um # - K. SUPORTE A WEBSOCKET: As rotas do Office incluem a configuração
# snippet com parâmetros de segurança robustos (HSTS, Ciphers, etc.). # necessária para o funcionamento de WebSockets, essencial para a
# Adiciona cabeçalhos de segurança recomendados pelo Nextcloud. # edição colaborativa em tempo real.
# - 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.
# #
# NOTA SOBRE CACHE: # DESTAQUES ANTERIORES:
# A configuração anterior tentava implementar um cache privado para a interface # - A. UPSTREAM DO NEXTCLOUD: Centraliza a definição do servidor backend.
# do Nextcloud. Essa é uma prática arriscada e não recomendada oficialmente, # - B. REDIRECIONAMENTO HTTP PARA HTTPS: Garante tráfego seguro.
# pois pode facilmente vazar dados de sessão entre usuários se a chave de cache # - C. SERVIDOR PRINCIPAL HTTPS: Bloco principal com SSL/TLS e HTTP/2.
# não for perfeita. Removemos essa lógica em favor da estabilidade e segurança. # - D. PARÂMETROS DE SSL/TLS E SEGURANÇA: Configurações robustas de segurança.
# O cache de assets estáticos deve ser gerenciado pelo próprio Nextcloud ou # - E. PARÂMETROS GERAIS DO SERVIDOR: Limite de upload e logs.
# por um CDN, se necessário. # - 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 # A. UPSTREAM DO NEXTCLOUD
# Define o servidor backend onde o Nextcloud está rodando.
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
upstream nextcloud_backend { upstream nextcloud_backend {
server 172.16.253.12; 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 # B. BLOCO HTTP: Redirecionar para HTTPS
# ============================================================================== # ==============================================================================
@ -80,11 +77,10 @@ server {
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
# D. PARÂMETROS DE SSL/TLS E SEGURANÇA # 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 /etc/letsencrypt/live/cloud.grupopralog.com.br/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/cloud.grupopralog.com.br/privkey.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/cloud.grupopralog.com.br/privkey.pem;
include /etc/nginx/snippets/ssl_params.conf; # Carrega parâmetros de segurança (HSTS, Ciphers, etc.) 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 Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
add_header X-Content-Type-Options nosniff always; add_header X-Content-Type-Options nosniff always;
add_header X-Frame-Options "SAMEORIGIN" always; add_header X-Frame-Options "SAMEORIGIN" always;
@ -95,7 +91,7 @@ server {
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
# E. PARÂMETROS GERAIS DO SERVIDOR # 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; access_log /var/log/nginx/access.log detailed_proxy;
error_log /var/log/nginx/error.log; error_log /var/log/nginx/error.log;
include /etc/nginx/snippets/custom_errors.conf; 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/carddav { return 301 $scheme://$host/remote.php/dav; }
location = /.well-known/caldav { 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 / { location / {
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# G. TRATAMENTO DE URLS AMIGÁVEIS (PRETTY URLS) # 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 ^\/\.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 # Passa a requisição para o backend
proxy_pass http://nextcloud_backend; proxy_pass http://nextcloud_backend;
@ -134,9 +168,9 @@ server {
# Parâmetros adicionais de proxy # Parâmetros adicionais de proxy
proxy_http_version 1.1; proxy_http_version 1.1;
proxy_connect_timeout 60s; proxy_connect_timeout 60s;
proxy_read_timeout 3600s; # Essencial para sync de arquivos grandes proxy_read_timeout 3600s;
proxy_send_timeout 3600s; proxy_send_timeout 3600s;
proxy_buffering off; # Recomendado para uploads/downloads grandes proxy_buffering off;
proxy_request_buffering off; proxy_request_buffering off;
} }
} }