Django nginx и проблема добавления слешей - PullRequest
1 голос
/ 21 октября 2010

Я пытаюсь использовать nginx в качестве простого балансировщика нагрузки для django согласно примеру Джейкоба Каплана-Мосса: http://github.com/jacobian/django-deployment-workshop http://python.mirocommunity.org/video/1689/pycon-2010-django-deployment-w

Если я остановлю nginx и у меня будет Apache, прослушивающий порт 80, все будет нормально. Если у меня есть apache, слушающий nginx, мои URL прерываются.

Когда nginx работает, http://184.106../admin/ работает, но http://184.106../admin (отсутствует завершающий слеш) прерывается. Перенаправляет на имя веб-сервера http://web1/admin/

Я знаю, что проблема вызвана nginx, потому что перенаправление отлично работает в apache и django dev server.

Вот исполняемый файл nginx.conf:

# Nginx conf (/etc/nginx/nginx.conf).

#
# Basic setup
#

user www-data;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

#
# Event/worker setup.
#

worker_processes 4;
events {
    worker_connections 100;
}

#
# HTTP configuration
#

http {
    include /etc/nginx/mime.types;

    # HTTP upstream for load balancers.
    # Replace the IPs below with IPs (or names) of your upstream Apaches
    upstream sitename {
        server 10.X.X.X:8000;
        server 10.X.X.X:8000;
    }

    # The actual HTTP sever.
    server {
        listen 80;

        # Don't proxy static files like robots.txt and favicon.ico.
        location ~ ^/(favicon.ico|robots.txt|sitemap.xml)$ {
            alias /home/web/static/$1;
        }

        # Serve media directly out of Nginx for performance
        location /media {
            alias /home/media;
        }

        # Proxy everything else to the backend
        location / {
            proxy_pass http://sitename;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;      
            add_header X-Handled-By $upstream_addr;      
        }
    }
}

1 Ответ

1 голос
/ 13 ноября 2010

У меня была точно такая же проблема, как и у вас, следуя примеру Джейкоба nginx, и отсутствие косой черты могло привести к неправильным перенаправлениям.Ответ pjmorse помог мне, я установил имя_сервера в блоке сервера (server {имя_сервера: vasir.net; ....), и это решило проблему.Однако сначала мне пришлось перезапустить сервер и

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...