Heim >Backend-Entwicklung >Python-Tutorial >So richten Sie den Nginx-Reverse-Proxy für den lokalen Docker Django ein

So richten Sie den Nginx-Reverse-Proxy für den lokalen Docker Django ein

WBOY
WBOYnach vorne
2024-02-08 21:12:161246Durchsuche

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

Frageninhalt

Ich verwende nginxdjango 服务开发一个 docker 项目。我已将 django.conf.template Parametrisierung, um Umgebungsvariablen basierend auf der Umgebung dynamisch zu übergeben.

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;
  }
}

Die Vorlage funktioniert gut, da ich die Umgebungsvariablenwerte mit dem more /etc/nginx/conf.d/sites-available/django.confBefehl

anzeigen kann
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;
  ...

Aber wenn ich versuche, über den Browser zuzugreifen, funktioniert es nicht.

Irgendwelche Ideen? Kann mir jemand helfen?


Richtige Antwort


Auf lokal und auf dem Mac muss ich host.docker.internal IP wie folgt zu /etc/hosts der Nginx-Konfigurationsdatei hinzufügen:

127.0.0.1        localhost
172.17.0.1       localhost
...

Und lösen Sie das Problem.

Das obige ist der detaillierte Inhalt vonSo richten Sie den Nginx-Reverse-Proxy für den lokalen Docker Django ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen