1. Installer Nginx

1.1 Choisir la version stable

Nous compilons et installons Nginx pour personnaliser nos propres modules, sur une machine CentOS 6.2 x86_64. D'abord, installez les paquets de dépendances manquants :

# yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel

Si ces paquets ne sont pas disponibles dans yum, vous pouvez télécharger le code source pour les compiler et les installer. Faites simplement attention au répertoire d'installation par défaut lors de la compilation, et assurez-vous que les fichiers de bibliothèques dynamiques puissent être trouvés lors de l'installation de Nginx ci-dessous (ldconfig).

nginx 服务器安装及配置文件详解

depuishttp://nginx.org/en/download.htmlTéléchargez la version stable nginx-1.6.3.tar.gz dans /usr/local/src et extrayez-la.

Pour la préparation suivante, nous téléchargeons également 2 modules de plugin :nginx_upstream_check_module-0.3.0.tar.gz— Vérification de l'état des serveurs backend,nginx-goodies-nginx-sticky-module-ng-bd312d586752.tar.gz(Il est recommandé de renommer le répertoire en nginx-sticky-module-ng-1.2.5 après l'avoir extrait sous /usr/local/src) — pour l'équilibrage de charge backendRésoudre le problème de session sticky (lorsqu'il est utilisé avec le module upstream_check, un correctif supplémentaire est nécessaire, veuillez vous référer àConfiguration de l'équilibrage de charge Nginx en pratique)。

Veuillez noter la compatibilité des versions entre les plugins et Nginx. En général, plus le plugin est récent, mieux c'est ; Nginx n'a pas besoin de courir après la version la plus récente, la stabilité avant tout. nginx-1.4.7, nginx-sticky-module-1.1, nginx_upstream_check_module-0.2.0, cette combinaison convient également. sticky-1.1 avec les versions nginx-1.6 a provoqué des erreurs de compilation en raison de mises à jour qui n'ont pas suivi. (Vous pouvez directement utiliser Tengine, qui inclut ces modules par défaut)

[root@cachets nginx-1.6.3]# pwd
/usr/local/src/nginx-1.6.3
[root@cachets nginx-1.6.3]# ./configure --prefix=/usr/local/nginx-1.6 --with-pcre /
> --with-http_stub_status_module --with-http_ssl_module /
> --with-http_gzip_static_module --with-http_realip_module /
> --add-module=../nginx_upstream_check_module-0.3.0
[root@cachets nginx-1.6.3]# make && make install

1.2 Description des options de compilation courantes

La plupart des modules couramment utilisés de Nginx sont installés par défaut lors de la compilation ; ceux commençant par --without dans ./configure --help sont installés par défaut.

  • --prefix=PATH : Spécifie le répertoire d'installation de Nginx. La valeur par défaut est /usr/local/nginx
  • --conf-path=PATH : Définit le chemin du fichier de configuration nginx.conf. Nginx permet de démarrer avec différents fichiers de configuration via l'option -c sur la ligne de commande. La valeur par défaut estprefix/conf/nginx.conf
  • --user=name : définit l'utilisateur des processus worker de Nginx. Après l'installation, vous pouvez modifier la directive user dans le fichier de configuration nginx.conf à tout moment. Le nom d'utilisateur par défaut est nobody. --group=name est similaire.
  • --with-pcre : définit le chemin du code source de la bibliothèque PCRE. Si elle a été installée via yum, utilisez --with-pcre pour trouver automatiquement les fichiers de bibliothèque. Lors de l'utilisation de --with-pcre=PATH, vous devez télécharger le code source de la bibliothèque pcre (versions 4.4 – 8.30) depuis le site web de PCRE et l'extraire ; le reste est laissé à ./configure et make de Nginx. Les expressions régulières Perl sont utilisées dans la directive location et le module ngx_http_rewrite_module.
  • --with-zlib=PATH : spécifie le répertoire d'extraction des sources de zlib (versions 1.1.3 – 1.2.5). zlib est requis pour le module de compression de transmission réseau ngx_http_gzip_module, qui est activé par défaut.
  • --with-http_ssl_module : utilise le module de protocole HTTPS. Par défaut, ce module n'est pas compilé. Le prérequis est que openssl et openssl-devel soient installés.
  • --with-http_stub_status_module : utilisé pour surveiller l'état actuel de Nginx
  • --with-http_realip_module : ce module nous permet de modifier la valeur de l'adresse IP du client dans les en-têtes de requête du client (tels que X-Real-IP ou X-Forwarded-For). L'importance est qu'il permet aux serveurs backend d'enregistrer l'adresse IP d'origine du client.
  • --add-module=PATH : ajoute des modules externes tiers, tels que nginx-sticky-module-ng ou des modules de cache. Chaque fois qu'un nouveau module est ajouté, une recompilation est nécessaire (Tengine peut ajouter de nouveaux modules sans recompilation).

Voici un autre schéma de compilation:

./configure /
> --prefix=/usr /
> --sbin-path=/usr/sbin/nginx /
> --conf-path=/etc/nginx/nginx.conf /
> --error-log-path=/var/log/nginx/error.log /
> --http-log-path=/var/log/nginx/access.log /
> --pid-path=/var/run/nginx/nginx.pid  /
> --lock-path=/var/lock/nginx.lock /   
> --user=nginx /
> --group=nginx /
> --with-http_ssl_module /
> --with-http_stub_status_module /
> --with-http_gzip_static_module /
> --http-client-body-temp-path=/var/tmp/nginx/client/ /
> --http-proxy-temp-path=/var/tmp/nginx/proxy/ /
> --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ /
> --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi /
> --with-pcre=../pcre-7.8
> --with-zlib=../zlib-1.2.3

1.3 Démarrer et arrêter Nginx

## 检查配置文件是否正确
# /usr/local/nginx-1.6/sbin/nginx -t 
# ./sbin/nginx -V     # 可以看到编译选项
## 启动、关闭
# ./sbin/nginx        # 默认配置文件 conf/nginx.conf,-c 指定
# ./sbin/nginx -s stop
ou  pkill nginx
## 重启,不会改变启动时指定的配置文件
# ./sbin/nginx -s reload
ou  kill -HUP `cat /usr/local/nginx-1.6/logs/nginx.pid`

Bien sûr, vous pouvez également gérer Nginx en tant que service système. Téléchargez nginx dans /etc/init.d/, modifiez les chemins à l'intérieur, puis accordez-lui les permissions d'exécution.

# service nginx {start|stop|status|restart|reload|configtest}

1.4 Installer via yum

L'installation du paquet RPM via yum est beaucoup plus simple que la compilation et l'installation. De nombreux modules sont installés par défaut, mais l'inconvénient est que si vous souhaitez installer des modules tiers plus tard, il n'y a aucun moyen de le faire.

# vi /etc/yum.repo.d/nginx.repo 
[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=0 
enabled=1

Le reste se fait avec yum install nginx. Vous pouvez également utiliser yum install nginx-1.6.3 pour installer une version spécifique (à condition que vous voyiez la version correspondante dans les paquets ; par défaut, c'est la dernière version stable).

2. Fichier de configuration nginx.conf

Le fichier de configuration Nginx se divise principalement en quatre parties : main (paramètres globaux), server (paramètres d'hôte), upstream (paramètres de serveur amont, principalement liés aux configurations de proxy inverse et d'équilibrage de charge), et location (paramètres après qu'une URL correspond à un emplacement spécifique). Chaque partie contient plusieurs directives. Les directives définies dans la partie main affectent les paramètres de toutes les autres parties ; les directives de la partie server servent principalement à spécifier les noms de domaine des hôtes virtuels, les IP et les ports ; les directives dans upstream servent à définir une série de serveurs backend, à configurer le proxy inverse et l'équilibrage de charge des serveurs backend ; la partie location sert à faire correspondre les emplacements des pages web (par exemple, répertoire racine "/", "/images", etc.). Leur relation est la suivante : server hérite de main, location hérite de server ; upstream n'hérite pas des directives et n'est pas hérité. Il possède ses propres directives spéciales et n'a pas besoin d'être appliqué ailleurs.

Plusieurs contextes de directives actuellement pris en charge par Nginx :

2.1 Général

Le fichier nginx.conf suivant est un exemple simple de Nginx agissant comme serveur proxy inverse en front-end, gérant des fichiers statiques tels que js et png, et transmettant des requêtes dynamiques telles que jsp à un autre serveur, Tomcat :

user  www www;
worker_processes  2;
error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
pid        logs/nginx.pid;
events {
    use epoll;
    worker_connections  2048;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    #access_log  logs/access.log  main;
    sendfile        on;
    # tcp_nopush     on;
    keepalive_timeout  65;
  # gzip压缩功能设置
    gzip on;
    gzip_min_length 1k;
    gzip_buffers    4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 6;
    gzip_types text/html text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
    gzip_vary on;

  # http_proxy 设置
    client_max_body_size   10m;
    client_body_buffer_size   128k;
    proxy_connect_timeout   75;
    proxy_send_timeout   75;
    proxy_read_timeout   75;
    proxy_buffer_size   4k;
    proxy_buffers   4 32k;
    proxy_busy_buffers_size   64k;
    proxy_temp_file_write_size  64k;
    proxy_temp_path   /usr/local/nginx/proxy_temp 1 2;
  # 设定负载均衡后台服务器列表 
    upstream  backend  { 
              #ip_hash; 
              server   192.168.10.100:8080 max_fails=2 fail_timeout=30s ;  
              server   192.168.10.101:8080 max_fails=2 fail_timeout=30s ;  
    }
  # 很重要的虚拟主机配置
    server {
        listen       80;
        server_name  itoatest.example.com;
        root   /apps/oaapp;
        charset utf-8;
        access_log  logs/host.access.log  main;
        #对 / 所有做负载均衡+反向代理
        location / {
            root   /apps/oaapp;
            index  index.jsp index.html index.htm;
            proxy_pass        http://backend;  
            proxy_redirect off;
            # 后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
            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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

        }
        #静态文件,nginx自己处理,不去backend请求tomcat
        location  ~* /download/ {  
            root /apps/oa/fs;  

        }
        location ~ .*/.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$   
        {   
            root /apps/oaapp;   
            expires      7d; 
        }
           location /nginx_status {
            stub_status on;
            access_log off;
            allow 192.168.10.0/24;
            deny all;
        }
        location ~ ^/(WEB-INF)/ {   
            deny all;   
        }
        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
  ## 其它虚拟主机,server 指令开始
}

2.2 Description des directives courantes

2.2.1 Configuration globale main

Certains paramètres de Nginx à l'exécution qui ne sont pas liés à des fonctions métier spécifiques (telles que le service HTTP ou le proxy de service de messagerie), par exemple le nombre de processus worker, l'identité d'exécution, etc.

  • woker_processes 2
    Dans la section de premier niveau du fichier de configuration, le nombre de processus worker dans le rôle worker. Le processus maître reçoit les requêtes et les assigne aux workers pour traitement. Pour faire simple, cette valeur peut être définie sur le nombre de cœurs CPU `grep ^processor /proc/cpuinfo | wc -l`, qui est également la valeur `auto`. Si SSL et gzip sont activés, elle doit être définie sur le même nombre que les CPU logiques, voire le double, ce qui peut réduire les opérations d'E/S. Si le serveur Nginx exécute également d'autres services, envisagez de la réduire de manière appropriée.mainÉgalement écrit dans la section main.
  • worker_cpu_affinity
    Dans les situations de forte concurrence, définissez l'affinité CPU pour réduire la perte de performances causée par la reconstruction des registres et d'autres contextes lors des changements de cœurs CPU. Par exemple : worker_cpu_affinity 0001 0010 0100 1000; (quatre cœurs).mainÉcrit dans la
  • worker_connections 2048
    section. Chaque processus worker peut gérer (initier) simultanément le nombre maximal de connexions (y compris toutes les connexions avec les clients ou les serveurs backend proxifiés). Lorsque Nginx agit comme serveur proxy inverse, la formule de calcul est : connexions maximales = worker_processes * worker_connections / 4, donc le nombre maximal de connexions client ici est 1024. Cela peut être augmenté jusqu'à 8192 sans problème, selon la situation, mais ne peut pas dépasser le worker_rlimit_nofile mentionné plus loin. Lorsque Nginx agit comme serveur HTTP, la formule de calcul est divisée par 2.eventsÉcrit dans la
  • worker_rlimit_nofile 10240
    section. Par défaut, il n'est pas défini et peut être limité au maximum du système d'exploitation 65535.mainÉcrit dans la section events. Sur Linux, Nginx utilise le modèle d'événements epoll par défaut. Grâce à cela, Nginx est assez efficace sur Linux. En même temps, Nginx utilise kqueue, un modèle d'événements à haut rendement similaire à epoll, sur les systèmes OpenBSD ou FreeBSD. select n'est utilisé que lorsque le système d'exploitation ne prend pas en charge ces modèles à haut rendement.
  • use epoll
    2.2.2 Serveur HTTP

Quelques paramètres de configuration liés à la fourniture de services HTTP. Par exemple : utiliser ou non keepalive, utiliser ou non gzip pour la compression, etc.

Activer un mode de transfert de fichiers très efficace. La directive sendfile spécifie si Nginx appelle la fonction sendfile pour envoyer des fichiers, ce qui réduit les changements de contexte de l'espace utilisateur vers l'espace noyau. Pour les applications ordinaires, définissez-la sur on ; pour les applications à forte charge d'E/S disque comme les téléchargements, elle peut être définie sur off afin d'équilibrer les vitesses de traitement des E/S disque et réseau et de réduire la charge système.

  • sendfile on
    Activer un mode de transfert de fichiers efficace. La directive sendfile spécifie si nginx appelle la fonction sendfile pour envoyer des fichiers, ce qui réduit les changements de contexte de l'espace utilisateur vers l'espace noyau. Pour les applications normales, définissez-la sur on ; si elle est utilisée pour des applications à forte charge d'E/S disque comme les téléchargements, elle peut être définie sur off afin d'équilibrer les vitesses de traitement des E/S disque et réseau et de réduire la charge système.
  • keepalive_timeout 65 : délai d'expiration keep-alive en secondes. Ce paramètre est très sensible, car il implique les types de navigateurs, les paramètres de délai d'expiration du serveur backend et les paramètres du système d'exploitation ; il pourrait faire l'objet d'un autre article. Avec keep-alive, lors de la requête de nombreux petits fichiers, le surcoût de rétablissement des connexions peut être réduit. Cependant, s'il y a un téléversement de fichier volumineux qui n'est pas terminé dans les 65 secondes, il échouera. Si le délai d'expiration est défini trop long et qu'il y a de nombreux utilisateurs, le maintien des connexions pendant une longue durée consommera beaucoup de ressources.
  • send_timeout : utilisé pour spécifier le délai d'expiration pour répondre au client. Ce délai est limité au temps entre deux activités de connexion. Si le client n'a aucune activité au-delà de ce délai, Nginx fermera la connexion.
  • client_max_body_size 10m
    Taille maximale en octets d'un fichier unique autorisée pour les requêtes client. S'il y a des téléversements de fichiers volumineux, définissez sa limite.
  • client_body_buffer_size 128k
    Le nombre maximal d’octets pour la mise en mémoire tampon des requêtes client dans le tampon proxy.
Module http_proxy :

Ce module implémente la fonctionnalité de Nginx en tant que serveur proxy inverse, y compris la mise en cache (voir aussil’article)

  • proxy_connect_timeout 60
    Délai d’expiration pour la connexion de Nginx aux serveurs backend (délai de connexion proxy)
  • proxy_read_timeout 60
    Après une connexion réussie, le délai d’expiration entre deux opérations de réponse réussies avec le serveur backend (délai de réception proxy)
  • proxy_buffer_size 4k
    Définir la taille du tampon pour le serveur proxy (nginx) afin de lire et enregistrer les informations d’en-têteutilisateur depuis le serveur réel backend. La valeur par défaut est identique à la taille de proxy_buffers ; en fait, vous pouvez définir la valeur de cette directive un peu plus petite.
  • proxy_buffers 4 32k
    proxy_buffers buffer : nginx met en cache depuis le serveur réel backend pour une connexion uniqueles réponsesSi la page web moyenne est inférieure à 32k, configurez-le comme ceci
  • proxy_busy_buffers_size 64k
    Taille du tampon sous forte charge (proxy_buffers*2)
  • proxy_max_temp_file_size
    Lorsque proxy_buffers ne peut pas contenir le contenu de la réponse du serveur backend, une partie de celui-ci sera enregistrée dans un fichier temporaire sur disque. Cette valeur définit la taille maximale du fichier temporaire ; la valeur par défaut est 1024M. Elle n'a rien à voir avec proxy_cache. Si sa taille est supérieure à cette valeur, le contenu sera retransmis depuis le serveur upstream. La définir à 0 la désactive.
  • proxy_temp_file_write_size 64k
    Lorsque les réponses mises en cache du serveur proxifié sont écrites dans des fichiers temporaires, cette option limite la taille de chaque écriture dans le fichier temporaire. proxy_temp_path (qui peut être défini à la compilation) spécifie le répertoire dans lequel écrire.

proxy_pass et proxy_redirect, voir la section location.

Module http_gzip :
  • gzip on : active la sortie compressée gzip pour réduire la transmission réseau.
    • gzip_min_length 1k : définit la taille minimale en octets d'une page autorisée pour la compression. La taille en octets de la page est obtenue à partir de content-length dans l'en-tête. La valeur par défaut est 20. Il est recommandé de la définir à une taille en octets supérieure à 1k ; en dessous de 1k, le fichier peut devenir plus volumineux après compression.
    • gzip_buffers 4 16k : définit le nombre d'unités de cache que le système obtient pour stocker le flux de données résultant de la compression gzip. « 4 16k » signifie utiliser 16k comme unité, en allouant de la mémoire 4 fois la taille des données d'origine en unités de 16k.
    • gzip_http_version 1.0 : utilisé pour identifier la version du protocole HTTP. Les navigateurs anciens ne prennent pas en charge la compression gzip, et les utilisateurs verraient du texte illisible. Cette option a donc été ajoutée pour prendre en charge les versions antérieures. Si vous utilisez Nginx comme proxy inverse et que vous souhaitez activer également la compression gzip, comme la communication avec le backend est en http/1.0, veuillez la définir à 1.0.
    • gzip_comp_level 6 : taux de compression gzip. 1 correspond au plus petit taux de compression et à la vitesse de traitement la plus rapide ; 9 correspond au plus grand taux de compression mais à la vitesse de traitement la plus lente (transmission plus rapide mais plus gourmande en CPU).
    • gzip_types : correspond aux types MIME pour la compression. Qu'il soit spécifié ou non, le type "text/html" est toujours compressé.
    • gzip_proxied any : activé lorsque Nginx agit en tant que proxy inverse. Il décide d'activer ou de désactiver la compression des résultats renvoyés par le serveur backend. La condition préalable à la correspondance est que le serveur backend doit renvoyer un en-tête contenant "Via".
    • gzip_vary on : lié aux en-têtes HTTP. Il ajoute un en-tête de réponse "Vary: Accept-Encoding", ce qui permet aux serveurs de cache front-end de mettre en cache les pages compressées avec gzip. Par exemple, utilisez Squid pour mettre en cache les données compressées par Nginx.

2.2.3 hôtes virtuels server

Le service http prend en charge plusieurs hôtes virtuels. Chaque hôte virtuel a un bloc de configuration server correspondant, qui contient la configuration relative à cet hôte virtuel. Lors de la fourniture d'un proxy de service de messagerie, plusieurs blocs server peuvent également être créés. Chaque serveur est distingué par son adresse d'écoute ou son port.

  • listen
    Port d'écoute, par défaut 80. Les ports inférieurs à 1024 doivent être démarrés en tant que root. Il peut se présenter sous des formes telles que listen *:80, listen 127.0.0.1:80, etc.
  • server_name
    Nom du serveur, tel que localhost, www.example.com. Il peut être mis en correspondance avec des expressions régulières.
Module http_stream

Ce module met en œuvre l'équilibrage de charge des IP client vers les serveurs backend au moyen d'un algorithme d'ordonnancement simple. "upstream" est suivi du nom du répartiteur de charge, et les serveurs réels backend sont organisés dans {} sous la forme host:port options;. S'il n'y a qu'un seul backend à proxifier, il peut également être écrit directement dans proxy_pass.

2.2.4 location

Dans le service http, une série de directives de configuration correspondant à certaines URL spécifiques.

  • root /var/www/html
    Définit l'emplacement du répertoire racine par défaut du site web pour le serveur. Si l'URL de location correspond à un sous-répertoire ou à un fichier, root a peu d'effet. Il est généralement placé dans la directive server ou sous "/".
  • index index.jsp index.html index.htm
    Définit le nom de fichier par défaut à accéder sous le chemin. Il est généralement placé avec root.
  • proxy_pass http:/backend
    Transfère les requêtes vers la liste de serveurs définie par backend, c'est-à-dire un proxy inverse, correspondant au répartiteur de charge upstream. Il peut aussi être proxy_pass http://ip:port.
  • proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    Pour le moment, configurez ces quatre éléments comme ceci. Si vous approfondissez, chacun implique un contenu très complexe, qui sera expliqué dans un autre article.

Concernant la syntaxe des règles de correspondance de location, on peut dire qu'elle est particulièrement critique et fondamentale. Voir l'articleRésumé de la configuration de location Nginx et de la syntaxe des règles de rewrite;

2.3 Autres

2.3.1 Contrôle d'accès allow/deny

Le module de contrôle d'accès de Nginx est installé par défaut, et sa syntaxe est également très simple. Il peut y avoir plusieurs directives allow et deny, autorisant ou bloquant l'accès depuis une adresse IP ou une plage d'adresses IP spécifique. Dès qu'une règle correspond dans l'ordre, la correspondance s'arrête. Par exemple :

location /nginx-status {
  stub_status on;
  access_log off;
#  auth_basic   "NginxStatus";
#  auth_basic_user_file   /usr/local/nginx-1.6/htpasswd;
  allow 192.168.10.100;
  allow 172.29.73.0/24;
  deny all;
}

Nous utilisons aussi souvent htpasswd de l'outil httpd-devel pour définir un mot de passe de connexion pour le chemin accédé :

# htpasswd -c htpasswd admin
New passwd:
Re-type new password:
Adding password for user admin
# htpasswd htpasswd admin    //修改admin密码
# htpasswd htpasswd sean    //多添加一个认证用户

Cela génère un fichier de mots de passe chiffré avec CRYPT par défaut. Décommentez les deux lignes de nginx-status ci-dessus, puis redémarrez Nginx pour que cela prenne effet.

2.3.2 Listage de répertoire autoindex

Par défaut, Nginx ne permet pas de lister l'intégralité du répertoire. Si vous avez besoin de cette fonctionnalité, ouvrez le fichier nginx.conf et ajoutez "autoindex on;" dans la section location, server ou http. Il est également préférable d'ajouter les deux autres paramètres :

  • autoindex_exact_size off; La valeur par défaut est on, ce qui affiche la taille exacte du fichier en octets. Après passage à off, il affiche la taille approximative du fichier en kB, MB ou GB.
  • autoindex_localtime on;
    La valeur par défaut est off, ce qui affiche l'heure du fichier en heure GMT. Après passage à on, l'heure du fichier affichée est l'heure serveur du fichier.
location /images {
  root   /var/www/nginx-default/images;
  autoindex on;
  autoindex_exact_size off;
  autoindex_localtime on;
}

Références