Versão inicial do site Avanzato
This commit is contained in:
+168
@@ -0,0 +1,168 @@
|
||||
# =============================================================================
|
||||
# AVANZATO TECNOLOGIA - Configuração Nginx
|
||||
# =============================================================================
|
||||
# Coloque este arquivo em: /etc/nginx/sites-available/avanzato
|
||||
# Depois crie link: sudo ln -s /etc/nginx/sites-available/avanzato /etc/nginx/sites-enabled/
|
||||
# =============================================================================
|
||||
|
||||
server {
|
||||
# Portas HTTP e HTTPS
|
||||
listen 80;
|
||||
# listen 443 ssl http2; # Descomente quando tiver SSL
|
||||
|
||||
# Domínio
|
||||
server_name avanzato.com.br www.avanzato.com.br;
|
||||
|
||||
# Pasta raiz do site
|
||||
root /var/www/avanzato/dist;
|
||||
index index.html;
|
||||
|
||||
# Charset
|
||||
charset utf-8;
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# LOGS
|
||||
# -------------------------------------------------------------------------
|
||||
access_log /var/log/nginx/avanzato-access.log;
|
||||
error_log /var/log/nginx/avanzato-error.log;
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# GZIP (compressão)
|
||||
# -------------------------------------------------------------------------
|
||||
gzip on;
|
||||
gzip_vary on;
|
||||
gzip_proxied any;
|
||||
gzip_comp_level 6;
|
||||
gzip_types
|
||||
text/plain
|
||||
text/css
|
||||
text/xml
|
||||
text/javascript
|
||||
application/json
|
||||
application/javascript
|
||||
application/xml+rss
|
||||
application/atom+xml
|
||||
image/svg+xml;
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# CACHE DE BROWSER
|
||||
# -------------------------------------------------------------------------
|
||||
# Assets com hash (JS/CSS) - cache longo
|
||||
location ~* \.(js|css)$ {
|
||||
expires 1y;
|
||||
add_header Cache-Control "public, immutable";
|
||||
add_header Vary "Accept-Encoding";
|
||||
}
|
||||
|
||||
# Imagens - cache médio
|
||||
location ~* \.(png|jpg|jpeg|gif|ico|svg|webp)$ {
|
||||
expires 6M;
|
||||
add_header Cache-Control "public";
|
||||
add_header Vary "Accept-Encoding";
|
||||
}
|
||||
|
||||
# Fontes - cache longo
|
||||
location ~* \.(woff|woff2|ttf|otf|eot)$ {
|
||||
expires 1y;
|
||||
add_header Cache-Control "public";
|
||||
add_header Vary "Accept-Encoding";
|
||||
}
|
||||
|
||||
# HTML - sem cache
|
||||
location ~* \.html$ {
|
||||
expires -1;
|
||||
add_header Cache-Control "no-store, no-cache, must-revalidate";
|
||||
}
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# SEGURANÇA - HEADERS
|
||||
# -------------------------------------------------------------------------
|
||||
add_header X-Frame-Options "SAMEORIGIN" always;
|
||||
add_header X-Content-Type-Options "nosniff" always;
|
||||
add_header X-XSS-Protection "1; mode=block" always;
|
||||
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
|
||||
|
||||
# Content Security Policy (ajuste conforme necessário)
|
||||
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://fonts.googleapis.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: https:; connect-src 'self'; frame-src https://api.whatsapp.com;" always;
|
||||
|
||||
# HSTS (descomente quando tiver SSL)
|
||||
# add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# REGRAS DE SEGURANÇA
|
||||
# -------------------------------------------------------------------------
|
||||
# Bloquear arquivos ocultos
|
||||
location ~ /\. {
|
||||
deny all;
|
||||
access_log off;
|
||||
log_not_found off;
|
||||
}
|
||||
|
||||
# Bloquear arquivos de backup/sensíveis
|
||||
location ~* \.(git|gitignore|env|log|sql|sh|bash|zsh|bak|backup|swp|tmp)$ {
|
||||
deny all;
|
||||
access_log off;
|
||||
log_not_found off;
|
||||
}
|
||||
|
||||
# Proteger arquivos de configuração
|
||||
location ~* \.(htaccess|htpasswd|ini|conf)$ {
|
||||
deny all;
|
||||
access_log off;
|
||||
log_not_found off;
|
||||
}
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# SPA - Single Page Application (React)
|
||||
# -------------------------------------------------------------------------
|
||||
# Tentar arquivo estático, senão vai para index.html
|
||||
location / {
|
||||
try_files $uri $uri/ /index.html;
|
||||
}
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# REDIRECIONAMENTOS
|
||||
# -------------------------------------------------------------------------
|
||||
# Forçar HTTPS (descomente quando tiver SSL)
|
||||
# if ($scheme != "https") {
|
||||
# return 301 https://$host$request_uri;
|
||||
# }
|
||||
|
||||
# Remover www (opcional)
|
||||
# if ($host ~* ^www\.(.*)$) {
|
||||
# return 301 https://$1$request_uri;
|
||||
# }
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# PÁGINAS DE ERRO PERSONALIZADAS
|
||||
# -------------------------------------------------------------------------
|
||||
error_page 404 /index.html;
|
||||
error_page 500 502 503 504 /50x.html;
|
||||
location = /50x.html {
|
||||
root /var/www/avanzato/dist;
|
||||
internal;
|
||||
}
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# LIMITE DE TAMANHO DE UPLOAD
|
||||
# -------------------------------------------------------------------------
|
||||
client_max_body_size 10M;
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# TIMEOUTS
|
||||
# -------------------------------------------------------------------------
|
||||
client_body_timeout 12;
|
||||
client_header_timeout 12;
|
||||
keepalive_timeout 15;
|
||||
send_timeout 10;
|
||||
}
|
||||
|
||||
# =============================================================================
|
||||
# REDIRECIONAMENTO WWW (opcional)
|
||||
# =============================================================================
|
||||
# Se quiser forçar sem www:
|
||||
# server {
|
||||
# listen 80;
|
||||
# server_name www.avanzato.com.br;
|
||||
# return 301 $scheme://avanzato.com.br$request_uri;
|
||||
# }
|
||||
Reference in New Issue
Block a user