-
Notifications
You must be signed in to change notification settings - Fork 22
/
invoice.conf
107 lines (78 loc) · 4.71 KB
/
invoice.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
server {
# Définir les noms de domaine que ce bloc serveur va gérer.
server_name donaldtest.blog www.donaldtest.blog;
# Désactiver les journaux pour les requêtes vers /favicon.ico
location /favicon.ico {
access_log off; # Désactiver la journalisation des accès pour favicon
log_not_found off; # Désactiver la journalisation si le favicon n'est pas trouvé
}
# Activer la compression Gzip pour réduire la taille des fichiers envoyés au client
gzip on;
# Spécifier les types MIME qui doivent être compressés avec Gzip
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml
application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml
application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc
text/vtt text/x-component text/x-cross-domain-policy;
# Compresser toutes les requêtes provenant de proxy
gzip_proxied any;
# Ne compresser que les fichiers de plus de 256 octets
gzip_min_length 256;
# Activer la variation des réponses en fonction de l'en-tête Accept-Encoding (pour Gzip)
gzip_vary on;
# Permettre la décompression du contenu gzippé si le client ne le supporte pas
gunzip on;
# Ajouter l'en-tête HTTP Strict Transport Security (HSTS) pour imposer HTTPS
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" always;
# Ajouter un en-tête pour spécifier que les informations du référent ne doivent être envoyées que si le protocole est HTTPS
add_header 'Referrer-Policy' 'origin';
# Ajouter un en-tête pour contrôler les fonctionnalités comme vibrate, géolocalisation, etc.
add_header Feature-Policy "vibrate 'none';";
# Ajouter un en-tête pour restreindre certaines fonctionnalités du navigateur comme la géolocalisation, le microphone, etc.
add_header Permissions-Policy "geolocation=(),midi=(),sync-xhr=(),microphone=(),camera=(),magnetometer=(),gyroscope=(),fullscreen=(self),payment=()";
# Activer la protection XSS dans le navigateur
add_header X-XSS-Protection "1; mode=block";
# Proxifier toutes les requêtes vers le serveur d'application fonctionnant sur localhost port 8000
location / {
proxy_pass http://localhost:8000/; # Rediriger les requêtes vers le serveur d'application
proxy_set_header Host $host; # Préserver l'en-tête host original
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # Ajouter l'IP du client à l'en-tête X-Forwarded-For
proxy_set_header X-Real-IP $remote_addr; # Transmettre l'IP réelle du client
proxy_set_header X-Forwarded-Proto $scheme; # Transmettre le protocole original (HTTP ou HTTPS)
}
# Servir les fichiers statiques directement depuis le répertoire spécifié
location /static/ {
alias /var/www/invoice/django-invoice/staticfiles/; # Chemin vers les fichiers statiques
expires 30d; # Mettre en cache les fichiers statiques pendant 30 jours
}
# Servir les fichiers média directement depuis le répertoire spécifié
location /media/ {
alias /var/www/invoice/django-invoice/media/; # Chemin vers les fichiers média
expires 30d; # Mettre en cache les fichiers média pendant 30 jours
}
# Écouter sur le port 443 pour les connexions SSL/TLS
listen 443 ssl; # géré par Certbot
# Chemin vers le fichier de certificat SSL
ssl_certificate /etc/letsencrypt/live/donaldtest.blog/fullchain.pem; # géré par Certbot
# Chemin vers la clé privée du certificat SSL
ssl_certificate_key /etc/letsencrypt/live/donaldtest.blog/privkey.pem; # géré par Certbot
# Inclure des options SSL supplémentaires fournies par Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # géré par Certbot
# Chemin vers le fichier de paramètres Diffie-Hellman pour SSL
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # géré par Certbot
}
server {
# Rediriger les requêtes vers www.donaldtest.blog vers HTTPS
if ($host = www.donaldtest.blog) {
return 301 https://$host$request_uri; # Rediriger vers HTTPS
} # géré par Certbot
# Rediriger les requêtes vers donaldtest.blog vers HTTPS
if ($host = donaldtest.blog) {
return 301 https://$host$request_uri; # Rediriger vers HTTPS
} # géré par Certbot
# Définir les noms de domaine que ce bloc serveur va gérer
server_name donaldtest.blog www.donaldtest.blog;
# Écouter sur le port 80 pour les connexions HTTP
listen 80;
# Retourner une erreur 404 pour toutes les requêtes HTTP (géré par Certbot)
return 404; # géré par Certbot
}