首頁 > 後端開發 > Python教學 > 如何為本機 Docker Django 設定 Nginx 反向代理

如何為本機 Docker Django 設定 Nginx 反向代理

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2024-02-08 21:12:16
轉載
1266 人瀏覽過

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

問題內容

我正在使用 nginxdjango 服務開發一個 docker 專案。我已將 django.conf.template 參數化以根據環境動態傳遞環境變數。

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;
  }
}
登入後複製

這個範本運作良好,因為我可以使用 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;
  ...
登入後複製

但是當我嘗試透過瀏覽器存取時卻不起作用。

有什麼想法嗎?有人可以幫我嗎?


正確答案


在本機和mac 上,我需要將host.docker.internal ip 新增到nginx 設定檔的/etc/hosts 中,如下所示:

127.0.0.1        localhost
172.17.0.1       localhost
...
登入後複製

並解決問題。

以上是如何為本機 Docker Django 設定 Nginx 反向代理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板