Maison >développement back-end >Tutoriel Python >Comment configurer le proxy inverse Nginx pour Docker Django local

Comment configurer le proxy inverse Nginx pour Docker Django local

WBOY
WBOYavant
2024-02-08 21:12:161245parcourir

如何为本地 Docker Django 设置 Nginx 反向代理

Contenu de la question

J'utilise le paramétrage nginxdjango 服务开发一个 docker 项目。我已将 django.conf.template pour transmettre dynamiquement des variables d'environnement en fonction de l'environnement.

django.conf:

upstream django_app {
  server  ${django_private_ip}:${django_port};
}

server {

  listen  80;
  listen  443 ssl;
  listen  [::]:443 ssl;
  server_name   ${nginx_server_name};

  ssl_certificate /etc/nginx/certs/elitecars_cert.pem;
  ssl_certificate_key /etc/nginx/certs/elitecars_privkey.pem;

  access_log /var/log/nginx/nginx.django.access.log;
  error_log /var/log/nginx/nginx.django.error.log;

  location / {

    proxy_set_header    x-forwarded-host   $host;
    proxy_set_header    x-forwarded-server $host;
    proxy_set_header    x-forwarded-for    $proxy_add_x_forwarded_for;
    proxy_set_header    x-forwarded-proto  $scheme;
    proxy_set_header    x-real-ip          $remote_addr;
    proxy_set_header    host               $host;

    proxy_redirect  off;
    proxy_pass  http://django_app;
  }
}

Le modèle fonctionne bien car je peux afficher les valeurs des variables d'environnement à l'aide de la commande more /etc/nginx/conf.d/sites-available/django.conf

upstream django_app {
  server  django:8000;
}

server {

  listen  80;
  listen  443 ssl;
  listen  [::]:443 ssl;
  server_name   0.0.0.0 127.0.0.1 localhost;
  ...

Mais lorsque j'essaie d'accéder via un navigateur, cela ne fonctionne pas.

Des idées ? Quelqu'un peut-il m'aider?


Bonne réponse


En local et sur mac, je dois ajouter l'adresse IP host.docker.internal à /etc/hosts du fichier de configuration nginx comme ceci :

127.0.0.1        localhost
172.17.0.1       localhost
...

Et résolvez le problème.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer