2009-05-19 7 views
0

J'ai nginx avec réécriture fonctionne correctement sur mon serveur en production.nginx réécriture ne fonctionne pas (avec passager sur Mac OS X)

Mais lorsque j'ai essayé de définir la même règle sur ma machine de développement local (mac), la réécriture ne semble pas fonctionner.

Je veux "universitytutor.local" rediriger vers "www.universitytutor.local"

Voici la partie pertinente de mon nginx.conf

server{ 
      listen 80; 
      server_name universitytutor.local; 
      rewrite ^/(.*) http://www.universitytutor.local/$1 permanent; 
    } 

    server { 
      listen 80; 
      server_name www.universitytutor.local *.universitytutor.local; 
      root /Users/barmstrong/NetBeansProjects/universitytutor/public; # <--- be sure to point to 'public'! 
      passenger_enabled on; 
       rails_env development; 
    } 

La page se charge correctement si je tape " universitytutor.local "ou" www.universitytutor.local "et ne redirige pas. J'ai le * .universitytutor.local là-dedans parce que j'utilise des sous-domaines pour différentes villes, donc j'en ai besoin, mais je veux qu'un sous-domaine vierge soit redirigé vers "www".

Des idées?

Répondre

0

J'ai trouvé la solution pour cela. Je ne redémarrais pas Nginx correctement, donc il ne prenait pas les changements. Doh!

Vous pouvez redémarrer comme ça

sudo kill `cat /opt/nginx/logs/nginx.pid ` 
sudo /opt/nginx/sbin/nginx 

ou ajouter à votre .bashrc pour faciliter l'utilisation

alias nginx_restart='nginx_stop; nginx_start' 
alias nginx_start='sudo /opt/nginx/sbin/nginx' 
alias nginx_stop='sudo kill `cat /opt/nginx/logs/nginx.pid `' 
+0

Je trouve plus facile (sur linux de toute façon) pour faire un sudo/opt/nginx/sbin/nginx -s s'arrête au lieu de tuer. – Frozenskys

+1

Ou "service nginx reload/stop/start"? – Cimm