2010-10-21 6 views
1

Je tente d'utiliser nginx comme un équilibreur de charge simple pour django par exemple de Jacob Kaplan-Moss: http://github.com/jacobian/django-deployment-workshop http://python.mirocommunity.org/video/1689/pycon-2010-django-deployment-wDjango nginx et append barres obliques problème

Si j'arrêter nginx et qu'Apache écouter sur le port 80 tout fonctionne bien. Si j'ai apache en écoutant nginx, mes urls se cassent.

Lorsque nginx est en cours d'exécution, http://184.106. ./admin/works, mais http://184.106. ./admin (barre oblique manquant) ruptures. Il redirige vers le nom du serveur web http://web1/admin/

Je sais que c'est nginx à l'origine du problème car la redirection fonctionne correctement dans Apache et le serveur de développement django.

Voici le nginx.conf qui est en cours d'exécution:

# 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;  
     } 
    } 
} 
+0

Est-il sûr de supposer que vous avez un 'server_name' sur ce bloc' server' quelque part? C'est la première chose étrange que je vois, bien que je ne vois pas comment cela pourrait causer le problème que vous décrivez. – pjmorse

Répondre

1

J'ai eu exactement le même problème que vous aviez, à la suite par exemple nginx de Jacob, et ne pas avoir une barre oblique causerait réoriente inappropriées. La réponse de pjmorse m'a aidé, j'ai mis le nom du serveur dans le bloc du serveur (serveur {nom du serveur: vasir.net; ....) et cela a résolu le problème. Cependant, j'ai d'abord dû redémarrer le serveur et

+0

Désolé, je reviens juste à ça. Où définissez-vous le nom du serveur? J'ai essayé dans la directive "server" dans la configuration nginx, mais cela provoque des erreurs. – chris

+0

Merci pour l'aide. Nous avons eu quelques problèmes, donc je vais poster ici. Mettez les noms des serveurs dans la directive "server {" dans nginx.conf APRÈS "listen 80;" et cela ressemblera à "server_name yourdomain.com alias www.votredomaine.com;" – chris

Questions connexes