-
Notifications
You must be signed in to change notification settings - Fork 13
/
nginx.conf
99 lines (80 loc) · 3.28 KB
/
nginx.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
user http;
# Le nombre de "worker_processes" est donné par cette commande :
# cat /proc/cpuinfo | grep -c processor
worker_processes 1;
# Chemin vers le fichier PID de nginx
# pid /run/nginx.pid;
events {
# Nombre de connexion maximum par "worker"
# Nombre de clients max = worker_processes * worker_connections
# Dans notre cas, nginx peut supporter 1024 clients au maximum
worker_connections 1024;
# Utilisation du mécanisme "epoll" (gestionnaire d'évènements), disponible depuis Linux 2.6+
# https://www.kernel.org/doc/man-pages/online/pages/man4/epoll.4.html
use epoll;
}
http {
# Utilisation de la primitive sendfile() du kernel
# C'est un appel système pour le transfert des données entre le disque et la pile TCP.
# L'utilisation de cette primitive accroît les performances car les données sont
# manipulées directement via le kernel.
#
# https://www.kernel.org/doc/man-pages/online/pages/man2/sendfile.2.html
sendfile on;
# Activation du flag "TCP_CORK" lors de l'utilisation de la primitive sendfile() pour minimiser
# le nombre de paquets envoyés et ainsi augmenter les performances. Les trames partielles ne sont
# pas envoyées immédiatement et les données sont mises en attente. Un plafond de 200ms est défini par ce flag,
# si ce plafond est atteint, les données en attente sont automatiquement transmises.
#
# https://www.kernel.org/doc/man-pages/online/pages/man7/tcp.7.html
tcp_nopush on;
# Désactivation du flag "TCP_NODELAY" lors de l'utilisation de la primitive sendfile().
# Même si le flag TCP_CORK peut être combiné avec TCP_NODELAY, leur n'est pas but
# n'est pas le même, les données sont envoyées le plus tôt possible sans passer par un tampon.
# C'est plutôt conseillé pour les connexions de type "keep-alive" en temps réel échangeant
# des petits paquets de données.
tcp_nodelay off;
# Durée en secondes avant que le serveur ferme une connexion de type "keep-alive"
keepalive_timeout 15;
# Désactivation de l'affichage du numéro de version dans les headers HTTP et sur les pages d'erreur.
server_tokens off;
# Taille maximum des données qu'un client peut envoyer au serveur indiquée dans le header "Content-Length"
# Il peut être utile de modifier ce paramètre pour que vos internautes puissent uploader des fichiers plus
# volumineux.
client_max_body_size 8M;
# Type MIME par défaut quand aucun type n'a été spécifié
default_type application/octet-stream;
# On inclut la liste des "type MIME"
include mime.types;
# Chemins vers les fichiers de logs
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
# Compression des données avec Gzip
gzip on;
gzip_http_version 1.0;
gzip_comp_level 5;
gzip_min_length 512;
gzip_buffers 4 8k;
gzip_proxied any;
gzip_types
text/css
text/javascript
text/xml
text/plain
text/x-component
application/javascript
application/x-javascript
application/json
application/xml
application/rss+xml
application/vnd.ms-fontobject
font/truetype
font/opentype
image/svg+xml;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;
# Inclusion des fichiers virtual host
include /etc/nginx/sites-enabled/*;
# Inclusion des fichiers de configuration personnalisés
include /etc/nginx/conf.d/*;
}