Перезапись nginx не работает (с пассажиром в Mac OS X) - PullRequest
0 голосов
/ 20 мая 2009

У меня nginx с перезаписью работает корректно на моем сервере в производстве.

Но когда я попытался установить такое же правило на моей локальной машине для разработки (mac), перезапись не работала.

Я хочу, чтобы "universitytutor.local" перенаправлял на "www.universitytutor.local"

Вот соответствующая часть моего 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;
    }

Страница загружается правильно, набираю ли я «universitytutor.local» или «www.universitytutor.local», и она не перенаправляет.

У меня есть * .universitytutor.local, потому что я использую субдомены для разных городов, поэтому мне это нужно, но я хочу, чтобы пустой субдомен перенаправлялся на «www».

Есть идеи?

1 Ответ

0 голосов
/ 24 мая 2009

Нашел решение для этого. Я не перезагружал Nginx правильно, поэтому он не собирал изменения. Doh!

Вы можете перезагрузить, как это

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

или добавьте это в свой .bashrc для более легкого использования

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 `'
...