Bagaimana untuk menyediakan proksi terbalik Nginx untuk Docker Django tempatan

WBOY
Lepaskan: 2024-02-08 21:12:16
ke hadapan
1217 orang telah melayarinya

如何为本地 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;
  }
}
Salin selepas log masuk

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;
  ...
Salin selepas log masuk

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
...
Salin selepas log masuk

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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan