Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk menyediakan proksi terbalik Nginx untuk Docker Django tempatan

Bagaimana untuk menyediakan proksi terbalik Nginx untuk Docker Django tempatan

WBOY
WBOYke hadapan
2024-02-08 21:12:161246semak imbas

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

Kandungan soalan

Saya menggunakan nginxdjango 服务开发一个 docker 项目。我已将 django.conf.template parameterisasi untuk melepasi pembolehubah persekitaran secara dinamik berdasarkan persekitaran.

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

Templat berfungsi dengan baik kerana saya boleh melihat nilai pembolehubah persekitaran menggunakan arahan 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;
  ...

Tetapi apabila saya cuba mengakses melalui pelayar ia tidak berfungsi.

Ada idea? Bolehkah sesiapa membantu saya?


Jawapan betul


Pada tempatan dan mac, saya perlu menambah host.docker.internal ip ke /etc/hosts bagi fail konfigurasi nginx seperti berikut:

127.0.0.1        localhost
172.17.0.1       localhost
...

Dan selesaikan masalah.

Atas ialah kandungan terperinci Bagaimana untuk menyediakan proksi terbalik Nginx untuk Docker Django tempatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam