Files
innotexBoard/nginx.conf
2026-01-16 18:40:39 +01:00

70 lines
1.9 KiB
Nginx Configuration File

# Configuration Nginx pour InnotexBoard
# À utiliser en production avec HTTPS
upstream backend {
server backend:8000;
}
upstream frontend {
server frontend:3000;
}
server {
listen 80;
server_name _;
# Redirection HTTP vers HTTPS en production
# return 301 https://$host$request_uri;
# Frontend
location / {
proxy_pass http://frontend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
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;
}
# API Backend
location /api/ {
proxy_pass http://backend/api/;
proxy_http_version 1.1;
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;
# CORS headers (optionnel si backend les gère)
add_header Access-Control-Allow-Origin * always;
add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" always;
add_header Access-Control-Allow-Headers "Content-Type, Authorization" always;
}
# Documentation API
location /docs {
proxy_pass http://backend/docs;
}
location /openapi.json {
proxy_pass http://backend/openapi.json;
}
}
# Configuration HTTPS (à décommenter en production)
# server {
# listen 443 ssl http2;
# server_name admin.example.com;
#
# ssl_certificate /etc/nginx/certs/cert.pem;
# ssl_certificate_key /etc/nginx/certs/key.pem;
# ssl_protocols TLSv1.2 TLSv1.3;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
#
# # ... reste de la config ...
# }