Utiliser nginx comme serveur proxy est très lent, mais il est très rapide si on utilise nginx dans docker ! Pourquoi ?

Utiliser nginx comme serveur proxy est très lent, mais c’est très rapide si on utilise nginx dans Docker ! Pourquoi ?

app.yml

templates:
  #- "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/sshd.template.yml"
  - "templates/web.ratelimited.template.yml"
## Décommentez ces deux lignes si vous souhaitez ajouter Lets Encrypt (https)
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"
  - "templates/web.socketed.template.yml"

expose:
  #- "8080:80"   # http
  #- "444:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Définir db_shared_buffers à un maximum de 25 % de la mémoire totale.
  ## Sera défini automatiquement par bootstrap en fonction de la RAM détectée, ou vous pouvez le remplacer
  db_shared_buffers: "780MB"

  ## Peut améliorer les performances de tri, mais ajoute une utilisation de la mémoire par connexion
  # db_work_mem: "512MB"

  ## Quelle révision Git cette image doit-elle utiliser ? (par défaut : tests-passed)
  version: stable

env:
  # Configuration de la base de données
  DISCOURSE_DB_USERNAME: ****
  DISCOURSE_DB_PASSWORD: ***
  DISCOURSE_DB_HOST: ***
  DISCOURSE_DB_NAME: ***
  DISCOURSE_DB_PORT: ***
  DISCOURSE_DB_BACKUP_PORT: ***

  LANG: zh_CN.UTF-8
  DISCOURSE_DEFAULT_LOCALE: zh_CN

  ## Combien de requêtes web simultanées sont prises en charge ? Dépend de la mémoire et des cœurs CPU.
  ## Sera défini automatiquement par bootstrap en fonction des CPU détectés, ou vous pouvez le remplacer
  UNICORN_WORKERS: 2

Configuration nginx

server {
    listen 80; listen [::]:80;
    server_name my.web.org;

    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;  listen [::]:443 ssl http2;
    server_name minetest.cosoc.org;

    ssl_certificate      /var/discourse/shared/standalone/ssl/my.web.org.cer;
    ssl_certificate_key  /var/discourse/shared/standalone/ssl/my.web.org.key;
    ssl_session_tickets off;
    http2_idle_timeout 5m; # augmenté par rapport au défaut de 3m


location / {
        proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Real-IP $remote_addr;
    }

Pourquoi nginx est-il si lent ??? Mais c’est rapide quand vous ne l’utilisez pas !!