Извините, если это не то место, чтобы спрашивать.
У меня есть приложение django, обслуживаемое Gunicorn, которое переворачивается NginX, и оно переворачивается сервером ISA, поэтому у меня естьследующее:
ISA --> Nginx --> Gunicorn
ISA меняет www.mydomain.com/some/path/here
на Nginx, а эта /myapp
на Gunicorn (nginx и gunicorn находятся на одном сервере).
Проблема в том, чтоURL, например, базовый URL для доступа к этим приложениям:
www.mydomain.com/some/path/here/myapp/
Когда в представлении django есть действие, например, перенаправление, например: redirect(reverse('start'))
, URL должен быть
www.mydomain.com/some/path/here/myapp/start/
но я получаю
www.mydomain.com/some/path/here/some/path/here/myapp/start/
Как вы видите, повторяется some/path/here/
, я предполагаю, что это делается сервером ISA, но я не уверен в этом.Что я здесь не так делаю?
В моем файле settings.py у меня есть:
BASE_PATH = '/some/path/here'
FORCE_SCRIPT_NAME = BASE_PATH + '/myapp'
LOGIN_URL = FORCE_SCRIPT_NAME + '/loginhere/'
urls.py:
...
url(r'^start/', 'testapp.views.start', name='start'),
...
Мой nginx.conf:
user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
upstream wawared {
server 127.0.0.1:8000;
}
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/wawared.access.log;
error_log /var/log/nginx/wawared.error.log;
location /static {
root /path/to/static/files;
expires 1d;
gzip on;
}
location /myapp/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:8000/;
proxy_redirect off;
}
}
}