[DOCKER] Modifier les paramètres du conteneur nginx

introduction

Débutants. Modifions les paramètres du conteneur nginx!

fichier de configuration

Référence: [Qiita] Summary of nginx (Introduction)

Selon l'article de référence ci-dessus, le fichier de configuration nginx se trouve dans / usr / local / etc / nginx / pour les non-conteneurs, mais le conteneur ( nginx: 1.18 ''` dans Docker Hub. (Dans le cas de) est introuvable.

Dans un tel cas, utilisez `` docker exec -it nginx bash '' pour vous faufiler dans le conteneur et le vérifier.

Dans le cas d'un conteneur, il y avait nginx.conf sous `` `` / etc / nginx.

Pour les paramètres du serveur, incluez dans ce fichier/etc/nginx/conf.d/*.conf;Est référencé et par défaut/etc/nginx/conf.d/default.Il semble être défini dans conf.



# Mettre en cache le contenu statique
 Si vous le définissez très grossièrement en vous référant au [Site officiel](http://mogile.web.fc2.com/nginx/admin-guide/caching.html), il ressemblera à ce qui suit.
 Il n'y a pas de `` / data / nginx / cache '' dans le conteneur par défaut de nginx, donc si vous souhaitez démarrer le conteneur, créez-le dans le Dockerfile.


#### **`/etc/nginx/nginx.conf`**
```nginx

http {
(Omission)
    proxy_cache_path /data/nginx/cache keys_zone=cachezone:10m max_size=200m;

    include /etc/nginx/conf.d/*.conf;
(Omission)
}

nginx:/etc/nginx/conf.d/default.conf


server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    location / {
        proxy_cache cachezone;
        proxy_pass http://127.0.0.1:8080;
        proxy_cache_key $host$uri$is_args$args;
        proxy_cache_valid 200 10m;
    }
}

server {
    listen       8080;
    listen  [::]:8080;
    server_name  localhost2;
(Ce qui suit est omis)
}

C'est presque le même que le site officiel, mais tout en disant qu'il mettra tout en cache par défaut,

        proxy_cache_key $host$uri$is_args$args;

Veuillez noter que si vous ne définissez pas, vous obtiendrez toujours un échec de cache.

Vérifiez s'il y a un hit de cache

Consulter le journal est le moyen le plus rapide.

/etc/nginx/nginx.conf


http {
(Omission)
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" "$upstream_cache_status" "$server_port"';
(Omission)
}

Déconnectons-nous $ upstream_cache_status "`` et ``" $ server_port "` ``.

Dans la version sans cache

XXX.XXX.XXX.XXX - - [24/Oct/2020:12:32:01 +0000] "GET /xxxxx/ HTTP/1.1" 200 4668 "-" "python-requests/2.24.0" "-" "-" "80"

Vous pouvez voir que le journal de la fonction proxy n'est pas sorti. En revanche, dans la version mise en cache,

127.0.0.1 - - [24/Oct/2020:12:56:34 +0000] "GET / HTTP/1.0" 200 956 "-" "curl/7.61.1" "-" "-" "8080"
XXX.XXX.XXX.XXX - - [24/Oct/2020:12:56:34 +0000] "GET / HTTP/1.1" 200 956 "-" "curl/7.61.1" "-" "MISS" "80"
XXX.XXX.XXX.XXX - - [24/Oct/2020:12:56:54 +0000] "GET / HTTP/1.1" 200 956 "-" "curl/7.61.1" "-" "HIT" "80"

Avec un tel sentiment, le journal de communication interne et le journal de la fonction proxy qui affiche la présence ou l'absence de hits de cache sont émis.

Quelle est la différence de performance?

Pas de cache

キャッシュなし_number_of_users_1603540075.png キャッシュなし_total_requests_per_second_1603540075.png キャッシュなし_response_times_(ms)_1603540075.png

Il semble qu'il y ait encore beaucoup de place, mais j'ai arrêté le côté des outils de performance, donc je suis là.

Avec cache

キャッシュあり_number_of_users_1603536854.png キャッシュあり_total_requests_per_second_1603536854.png キャッシュあり_response_times_(ms)_1603536854.png

cette? Les performances semblent meilleures sans cache. Probablement, le modèle de charge cette fois-ci est "un accès concentré à un contenu pas si volumineux", donc je pense que c'est plus de surcharge pour obtenir sur le cache de tampon du système d'exploitation en premier lieu. .. Pour voir la différence exacte, vous devrez peut-être «distribuer l'accès à un contenu volumineux» pour bénéficier du cache.

Recommended Posts

Modifier les paramètres du conteneur nginx