2016-02-22 2 views
0

Я пытаюсь развернуть приложение Django на статичном веб-сайте html. Общий www.example.com предоставит базовый веб-сайт. URI /app должен затем прокси-серверу сервера Gunicorn WSGI. Конфигурация Nginx в sites-enabled выглядит следующим образом:Конфигурировать приложение Django как местоположение nginx

upstream gunicorn { 
server 127.0.0.1:8000; 
} 

server { 
    listen 80 default_server; 
    listen [::]:80 default_server; 
    root /var/www/website; 

    index index.html index.htm index.nginx-debian.html; 

    server_name _; 

    location/{ 
      # First attempt to serve request as file, then 
      # as directory, then fall back to displaying a 404. 
      try_files $uri $uri/ =404; 
    } 

    location /app { 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header Host $http_host; 
      proxy_redirect off; 
      proxy_pass http://gunicorn; 
    } 

}

Я получаю ошибку 404 при попытке www.example.com/app. Кажется, URI каким-то образом перепутался. Полный URL-адрес, который создается, - http://www.example.com/accounts/login/?next=/app/

Настройка приложения только в точности после этого урока http://hackedexistence.com/project/raspi/django-on-raspberry-pi.html действительно работает.

Является ли установка, на которую я нацеливаюсь, даже возможно? И если да, то где мое непонимание концепции местоположения?

ответ

1

Вы должны установить заголовок SCRIPT_NAME в своей директиве о местоположении.

proxy_set_header SCRIPT_NAME /app; 

См. Например, this blog post.

Смежные вопросы