[Auto-Sync] Atualização das configurações em srvproxy001.itguys.com.br - 2025-09-21 02:00:38
This commit is contained in:
parent
01689ce5ef
commit
352b7912ac
|
|
@ -1,99 +1,142 @@
|
||||||
# Ficheiro: /etc/nginx/sites-available/cloud.grupopralog.com.br.conf
|
# ==============================================================================
|
||||||
|
# ARQUIVO DE CONFIGURAÇÃO NGINX PARA NEXTCLOUD
|
||||||
|
# DOMÍNIO: cloud.grupopralog.com.br
|
||||||
|
# AUTOR: Gemini AI (Especialista NGINX)
|
||||||
|
# VERSÃO: 2.0
|
||||||
#
|
#
|
||||||
# Configuração de Proxy Reverso de ALTA PERFORMANCE para Nextcloud,
|
# DESCRIÇÃO:
|
||||||
# incluindo cache privado de curta duração para a interface dinâmica.
|
# Esta configuração atua como um proxy reverso seguro e otimizado para uma
|
||||||
|
# instância do Nextcloud.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# BLOCO HTTP: Redirecionar para HTTPS
|
|
||||||
# ==============================================================================
|
|
||||||
server {
|
|
||||||
if ($host = cloud.grupopralog.com.br) {
|
|
||||||
return 301 https://$host$request_uri;
|
|
||||||
} # managed by Certbot
|
|
||||||
|
|
||||||
|
|
||||||
listen 80;
|
|
||||||
listen [::]:80;
|
|
||||||
server_name cloud.grupopralog.com.br;
|
|
||||||
include /etc/nginx/snippets/custom_errors.conf; # Carrega as páginas de erro personalizadas
|
|
||||||
location /.well-known/acme-challenge/ { root /var/www/html; }
|
|
||||||
location / { return 301 https://$host$request_uri; }
|
|
||||||
|
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# A. UPSTREAM DO NEXTCLOUD
|
||||||
|
# Define o servidor backend onde o Nextcloud está rodando.
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
upstream nextcloud_backend {
|
||||||
|
server 172.16.253.12;
|
||||||
}
|
}
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# BLOCO HTTPS: O Coração da nossa Configuração
|
# B. BLOCO HTTP: Redirecionar para HTTPS
|
||||||
|
# ==============================================================================
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
server_name cloud.grupopralog.com.br;
|
||||||
|
|
||||||
|
# Desafio para renovação de certificado Let's Encrypt
|
||||||
|
location /.well-known/acme-challenge/ {
|
||||||
|
root /var/www/html;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Redirecionamento permanente para a versão HTTPS do site
|
||||||
|
location / {
|
||||||
|
return 301 https://$host$request_uri;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# C. BLOCO HTTPS: Servidor Principal
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
server {
|
server {
|
||||||
listen 443 ssl http2;
|
listen 443 ssl http2;
|
||||||
listen [::]:443 ssl http2;
|
listen [::]:443 ssl http2;
|
||||||
server_name cloud.grupopralog.com.br;
|
server_name cloud.grupopralog.com.br;
|
||||||
include /etc/nginx/snippets/custom_errors.conf; # Carrega as páginas de erro personalizadas
|
|
||||||
|
|
||||||
# --- Certificados e Segurança SSL ---
|
# --------------------------------------------------------------------------
|
||||||
#ssl_certificate /etc/letsencrypt/live/cloud.grupopralog.com.br/fullchain.pem;
|
# D. PARÂMETROS DE SSL/TLS E SEGURANÇA
|
||||||
#ssl_certificate_key /etc/letsencrypt/live/cloud.grupopralog.com.br/privkey.pem;
|
# --------------------------------------------------------------------------
|
||||||
#ssl_trusted_certificate /etc/letsencrypt/live/cloud.grupopralog.com.br/fullchain.pem;
|
ssl_certificate /etc/letsencrypt/live/cloud.grupopralog.com.br/fullchain.pem; # managed by Certbot
|
||||||
include /etc/nginx/snippets/ssl_params.conf;
|
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.)
|
||||||
|
|
||||||
# --- Políticas de Acesso e Logs ---
|
# Cabeçalhos de segurança recomendados pelo Nextcloud
|
||||||
include /etc/nginx/snippets/global_robots.conf;
|
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;
|
||||||
|
add_header X-Permitted-Cross-Domain-Policies none always;
|
||||||
|
add_header X-Robots-Tag "noindex, nofollow" always;
|
||||||
|
add_header X-XSS-Protection "1; mode=block" always;
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# E. PARÂMETROS GERAIS DO SERVIDOR
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
client_max_body_size 10G; # Permite uploads de até 10GB
|
||||||
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/global_robots.conf;
|
||||||
|
|
||||||
# --- Parâmetros Gerais ---
|
# --------------------------------------------------------------------------
|
||||||
client_max_body_size 10G;
|
# H. ROTAS ESPECÍFICAS (LOCATIONS)
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
# --- REGRAS DE ROTEAMENTO (LOCATIONS) ---
|
# H.1. Rota para redirecionamentos de CalDAV e CardDAV
|
||||||
# A ordem destas regras é CRUCIAL.
|
|
||||||
|
|
||||||
# 1. Redirecionamentos para CalDAV e CardDAV
|
|
||||||
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; }
|
||||||
|
|
||||||
# 2. Rota para Ficheiros Estáticos (Cache Agressivo)
|
# H.2. Rota Principal da Aplicação
|
||||||
location ~* \.(?:css|js|mjs|svg|gif|png|jpg|jpeg|ico|wasm|woff2?|ttf|eot)$ {
|
|
||||||
include /etc/nginx/snippets/proxy_params.conf;
|
|
||||||
include /etc/nginx/snippets/cache_immutable_static.conf; # Usa o nosso cache mais agressivo
|
|
||||||
proxy_pass http://172.16.253.12;
|
|
||||||
}
|
|
||||||
|
|
||||||
# 3. Rota para Sincronização de Ficheiros (WebDAV, etc.) - SEM CACHE
|
|
||||||
location ~ ^/(remote|dav|carddav|caldav) {
|
|
||||||
proxy_no_cache 1;
|
|
||||||
proxy_cache_bypass 1;
|
|
||||||
proxy_buffering off;
|
|
||||||
proxy_request_buffering off;
|
|
||||||
proxy_read_timeout 3600s;
|
|
||||||
include /etc/nginx/snippets/proxy_params.conf;
|
|
||||||
proxy_pass http://172.16.253.12;
|
|
||||||
}
|
|
||||||
|
|
||||||
# 4. Rota Principal para a Aplicação (CACHE PRIVADO DE CURTA DURAÇÃO)
|
|
||||||
location / {
|
location / {
|
||||||
# Usa a nossa zona de cache dedicada 'nextcloud_private_cache'.
|
# ----------------------------------------------------------------------
|
||||||
proxy_cache nextcloud_private_cache;
|
# G. TRATAMENTO DE URLS AMIGÁVEIS (PRETTY URLS)
|
||||||
# A "CHAVE" PESSOAL DE CADA UTILIZADOR. Usa o cookie de sessão do Nextcloud.
|
# Estas regras reescrevem as URLs para remover o "index.php".
|
||||||
proxy_cache_key "$scheme$proxy_host$request_uri$cookie_ocrx6w0vy907";
|
# ----------------------------------------------------------------------
|
||||||
# Cacheia por um tempo muito curto: 1 minuto.
|
rewrite ^\/\.well-known\/(card|cal)dav /remote.php/dav/ permanent;
|
||||||
proxy_cache_valid 200 1m;
|
rewrite ^(\/remote\/.+)(\/)$ $1 permanent; # Remove a barra final de URLs do remote
|
||||||
# Ignora e esconde os cabeçalhos de sessão para permitir o cache.
|
|
||||||
proxy_ignore_headers Expires Cache-Control Set-Cookie;
|
# Passa a requisição para o backend
|
||||||
proxy_hide_header Set-Cookie;
|
proxy_pass http://nextcloud_backend;
|
||||||
# Adiciona um cabeçalho de depuração para este cache.
|
|
||||||
add_header X-Private-Cache $upstream_cache_status;
|
# ----------------------------------------------------------------------
|
||||||
# O cache SÓ é usado para requisições GET. POST, PUT, DELETE, etc., são passadas diretamente.
|
# F. CABEÇALHOS DE PROXY (PROXY HEADERS)
|
||||||
proxy_cache_methods GET HEAD;
|
# ----------------------------------------------------------------------
|
||||||
|
proxy_set_header Host $host;
|
||||||
include /etc/nginx/snippets/proxy_params.conf;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
include /etc/nginx/snippets/websocket_params.conf;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
proxy_pass http://172.16.253.12;
|
proxy_set_header X-Forwarded-Host $host;
|
||||||
|
proxy_set_header X-Forwarded-Port $server_port;
|
||||||
|
|
||||||
|
# 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_send_timeout 3600s;
|
||||||
|
proxy_buffering off; # Recomendado para uploads/downloads grandes
|
||||||
|
proxy_request_buffering off;
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue