[Auto-Sync] Atualização das configurações em srvproxy001.itguys.com.br - 2025-09-23 13:43:29
This commit is contained in:
parent
27203bc9e1
commit
ceb53a05b5
|
|
@ -1,49 +1,130 @@
|
||||||
# /etc/nginx/sites-available/srvoffice001.itguys.com.br.conf
|
# ARQUIVO: /etc/nginx/sites-available/srvoffice001.itguys.com.br.conf
|
||||||
|
# DATA DA ALTERAÇÃO: 2025-09-23 13:38
|
||||||
# Explicações:
|
#
|
||||||
# 1. UPSTREAM_OOS_INTERNAL: O endereço IP e a porta ONDE A APLICAÇÃO do Office
|
# AUDITORIA E CORREÇÃO DE CONFIGURAÇÃO PARA MICROSOFT OFFICE ONLINE SERVER (OOS)
|
||||||
# Online Server está rodando no servidor Windows. Geralmente é HTTP na porta 80.
|
#
|
||||||
# Substitua 192.168.X.Y pelo IP INTERNO do servidor Windows.
|
# EXPLICAÇÕES GERAIS:
|
||||||
# 2. SSL TERMINATION: Este bloco NGINX escuta na porta 443 (HTTPS), lida com a
|
#
|
||||||
# criptografia e depois passa a requisição de forma limpa (HTTP) para o OOS.
|
# 1. REDIRECIONAMENTO HTTP -> HTTPS:
|
||||||
# 3. PROXY_PASS: A diretiva mais importante. Garante que qualquer requisição
|
# - O primeiro bloco 'server' escuta na porta 80 (HTTP) e redireciona
|
||||||
# feita a https://srvoffice001.itguys.com.br/ seja encaminhada para a aplicação.
|
# permanentemente (301) todo o tráfego para a versão segura em HTTPS.
|
||||||
# 4. PROXY HEADERS: Cabeçalhos essenciais para que o OOS saiba que a conexão
|
# Isso é uma prática essencial de segurança.
|
||||||
# original do cliente era segura (HTTPS).
|
#
|
||||||
|
# 2. BLOCO PRINCIPAL HTTPS (PORTA 443):
|
||||||
|
# - Este é o bloco principal que lida com as conexões seguras.
|
||||||
|
# - Habilita SSL/TLS e HTTP/2 para melhor performance.
|
||||||
|
#
|
||||||
|
# 3. PARÂMETROS SSL/TLS:
|
||||||
|
# - As diretivas 'ssl_*' foram adicionadas diretamente no arquivo para
|
||||||
|
# garantir uma configuração segura e moderna, evitando o uso de snippets.
|
||||||
|
# - Define os protocolos TLS aceitos (priorizando TLSv1.3), as cifras
|
||||||
|
# de criptografia fortes, e habilita HSTS (Strict-Transport-Security)
|
||||||
|
# para forçar o navegador a usar apenas HTTPS.
|
||||||
|
#
|
||||||
|
# 4. TRATAMENTO DE CORS (A CORREÇÃO PRINCIPAL):
|
||||||
|
# - O bloco 'if ($request_method = 'OPTIONS')' intercepta as requisições
|
||||||
|
# preflight do navegador.
|
||||||
|
# - 'add_header ...': Adiciona os cabeçalhos necessários para que o navegador
|
||||||
|
# (na origem 'cloud.grupopralog.com.br') entenda que a requisição é permitida.
|
||||||
|
# - 'return 204;': Responde à requisição OPTIONS com um código '204 No Content',
|
||||||
|
# que significa "sucesso, pode prosseguir". Isso evita que a requisição
|
||||||
|
# seja enviada ao backend do OOS, resolvendo o erro de redirecionamento.
|
||||||
|
# - 'add_header ... always;': Adiciona o cabeçalho 'Access-Control-Allow-Origin'
|
||||||
|
# para TODAS as respostas (não apenas as de sucesso 2xx), incluindo as requisições
|
||||||
|
# GET/POST reais, garantindo que o navegador as aceite.
|
||||||
|
#
|
||||||
|
# 5. PROXY REVERSO E WEBSOCKETS:
|
||||||
|
# - As diretivas 'proxy_*' encaminham a requisição para o servidor OOS interno.
|
||||||
|
# - Os cabeçalhos (Host, X-Real-IP, etc.) são preservados para que o OOS
|
||||||
|
# saiba a origem real da requisição.
|
||||||
|
# - As configurações de 'Upgrade' e 'Connection' são mantidas para garantir
|
||||||
|
# o funcionamento correto dos WebSockets, essenciais para a edição em tempo real.
|
||||||
|
|
||||||
|
# Bloco 1: Redirecionamento de HTTP para HTTPS
|
||||||
server {
|
server {
|
||||||
listen 80;
|
listen 80;
|
||||||
server_name srvoffice001.itguys.com.br;
|
server_name srvoffice001.itguys.com.br;
|
||||||
|
|
||||||
|
# Força o redirecionamento para a versão segura do site
|
||||||
return 301 https://$host$request_uri;
|
return 301 https://$host$request_uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Bloco 2: Configuração principal do Proxy Reverso com SSL
|
||||||
server {
|
server {
|
||||||
listen 443 ssl http2;
|
listen 443 ssl http2;
|
||||||
server_name srvoffice001.itguys.com.br;
|
server_name srvoffice001.itguys.com.br;
|
||||||
|
|
||||||
# Certificados SSL para este domínio
|
# --- Bloco 3: Parâmetros de SSL/TLS ---
|
||||||
|
# Caminhos para os certificados SSL
|
||||||
ssl_certificate /etc/letsencrypt/live/srvoffice001.itguys.com.br/fullchain.pem;
|
ssl_certificate /etc/letsencrypt/live/srvoffice001.itguys.com.br/fullchain.pem;
|
||||||
ssl_certificate_key /etc/letsencrypt/live/srvoffice001.itguys.com.br/privkey.pem;
|
ssl_certificate_key /etc/letsencrypt/live/srvoffice001.itguys.com.br/privkey.pem;
|
||||||
include snippets/ssl_params.conf; # Usando seu snippet de segurança
|
|
||||||
|
|
||||||
# Cabeçalhos de segurança
|
# Protocolos seguros
|
||||||
#add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
|
ssl_protocols TLSv1.2 TLSv1.3;
|
||||||
|
ssl_prefer_server_ciphers on;
|
||||||
|
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
|
||||||
|
ssl_ecdh_curve secp384r1;
|
||||||
|
ssl_session_cache shared:SSL:10m;
|
||||||
|
ssl_session_timeout 10m;
|
||||||
|
ssl_session_tickets off;
|
||||||
|
ssl_stapling on;
|
||||||
|
ssl_stapling_verify on;
|
||||||
|
resolver 8.8.8.8 8.8.4.4 valid=300s;
|
||||||
|
resolver_timeout 5s;
|
||||||
|
|
||||||
|
# Cabeçalho de segurança HSTS
|
||||||
|
# Força o navegador a se comunicar apenas via HTTPS por 6 meses
|
||||||
|
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains" always;
|
||||||
|
|
||||||
|
# Raiz do servidor, apenas para referência (não é estritamente necessário para proxy puro)
|
||||||
|
root /var/www/html;
|
||||||
|
|
||||||
# O Bloco Principal: Proxy reverso para a aplicação OOS
|
# O Bloco Principal: Proxy reverso para a aplicação OOS
|
||||||
location / {
|
location / {
|
||||||
# ATENÇÃO: Substitua 192.168.X.Y pelo IP do seu servidor Windows OOS
|
# --- Bloco 4: Tratamento de CORS (Correção) ---
|
||||||
|
# Intercepta as requisições de verificação (preflight)
|
||||||
|
if ($request_method = 'OPTIONS') {
|
||||||
|
# Informa qual origem é permitida
|
||||||
|
add_header 'Access-Control-Allow-Origin' 'https://cloud.grupopralog.com.br';
|
||||||
|
# Informa quais métodos são permitidos
|
||||||
|
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, HEAD';
|
||||||
|
# Informa quais cabeçalhos o navegador pode enviar
|
||||||
|
add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, Accept, Origin, User-Agent, DNT, Cache-Control, X-Mx-ReqToken, Keep-Alive, X-Requested-With, If-Modified-Since';
|
||||||
|
# Permite que o navegador envie cookies e credenciais
|
||||||
|
add_header 'Access-Control-Allow-Credentials' 'true';
|
||||||
|
# Define por quanto tempo o navegador pode cachear essa resposta preflight
|
||||||
|
add_header 'Access-Control-Max-Age' 1728000;
|
||||||
|
add_header 'Content-Type' 'text/plain; charset=utf-8';
|
||||||
|
add_header 'Content-Length' 0;
|
||||||
|
# Responde com sucesso e encerra o processamento aqui, evitando o proxy
|
||||||
|
return 204;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Adiciona o cabeçalho de permissão para as requisições reais (GET, POST, etc.)
|
||||||
|
# O 'always' é importante para incluir o header mesmo em respostas de erro.
|
||||||
|
add_header 'Access-Control-Allow-Origin' 'https://cloud.grupopralog.com.br' always;
|
||||||
|
add_header 'Access-Control-Allow-Credentials' 'true' always;
|
||||||
|
|
||||||
|
|
||||||
|
# --- Bloco 5: Proxy Reverso e WebSockets ---
|
||||||
|
# IP interno do seu servidor Windows com Office Online Server
|
||||||
proxy_pass http://172.16.253.101;
|
proxy_pass http://172.16.253.101;
|
||||||
|
|
||||||
# Cabeçalhos essenciais
|
# Cabeçalhos essenciais para o proxy
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto https; # Informa que a conexão externa é HTTPS
|
proxy_set_header X-Forwarded-Proto $scheme; # Usar $scheme é mais robusto
|
||||||
proxy_set_header X-Forwarded-Host $host;
|
proxy_set_header X-Forwarded-Host $host;
|
||||||
|
|
||||||
# Parâmetros para Websocket, importantes para a edição colaborativa
|
# Parâmetros para Websocket, importantes para a edição colaborativa
|
||||||
proxy_http_version 1.1;
|
proxy_http_version 1.1;
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
proxy_set_header Connection "upgrade";
|
proxy_set_header Connection "upgrade";
|
||||||
|
|
||||||
|
# Aumentar timeouts pode ajudar em conexões lentas ou documentos grandes
|
||||||
|
proxy_connect_timeout 90s;
|
||||||
|
proxy_send_timeout 90s;
|
||||||
|
proxy_read_timeout 90s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue