Я пытаюсь использовать Nginx в качестве простой балансировки нагрузки для Джанго на примере Якоба Каплана-Мосса: http://github.com/jacobian/django-deployment-workshop http://python.mirocommunity.org/video/1689/pycon-2010-django-deployment-wDjango Nginx и Append слэши проблема
Если я перестану Nginx и есть апач слушать порт 80 все работает отлично. Если у меня есть apache, слушающий nginx, мои URL-адреса ломаются.
Когда nginx работает, http://184.106. ./admin/works, но http://184.106. ./admin (отсутствует завершение слэш) перерывы. Он перенаправляет на имя веб-сервера http://web1/admin/
Я знаю, что это nginx вызывает проблему, потому что перенаправление отлично работает в Apache и сервере django dev.
Вот 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;
}
}
}
Можно ли предположить, что у вас есть 'server_name' в этом блоке' server' где-нибудь? Это первая странная вещь, которую я вижу, хотя я не вижу, как она вызовет описанную вами проблему. – pjmorse