2014-07-23 37 views
7

Nginx kullanarak bir AngularJS tek sayfalık uygulama yazıyorum.Nginx tek uygulama yapılandırması

Apache'den nginx'e geçtim, ancak config dosyamın çalışmasını sağlayamıyorum. Angular'ın yönlendirmeyi yapmasına izin vermek için her şeyi index.html'a yeniden yazmaya çalışıyorum.

server { 
    index index.html; 

    location/{ 
    expires -1; 
    add_header Pragma "no-cache"; 
    add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"; 
    try_files $uri $uri/ /index.html; 
    } 
} 

o .htaccess yaptığı benim gibi proje kök benim nginx.conf dosyanız mümkün mü: Benim nginx.conf

aşağıdaki gibidir?

+2

Neden "try_files" öğesinin çalışmadığını görmüyorum, ancak ikinci sorunuzu yanıtlamak için Nginx, dizinlere rastgele yerleştirilmiş yapılandırma dosyalarını yüklemez. Ne de olsa ... bu ciddi bir performans problemidir. Başlamak için Nginx için istediğiniz herhangi bir conf dosyasını ekleyebilirsiniz. Benim için, kodlarımda bir 'nginx' dizininde konfigürasyon dosyaları yerleştiriyorum ve Nginx'in' projects/*/nginx/nginx.conf' içermesini sağladım. – Brad

cevap

9

Nginx.conf'un proje kökünde olmasını ve gerekli olmadığını istemezsiniz. Ayrıca, nginx.conf dosyasında doğrudan değişiklik yapmak istemezsiniz. Bunun yerine,/etc/nginx/sites-içinde ln ile/etc/nginx/site-etkin olarak etkinleştirdiğiniz farklı web siteleri için özel dosyalar isteyeceksiniz.

Bildiğim kadarıyla yapılandırma olarak:

server { 
root /var/www/mysite/; #or whereever your site files are 
index index.html; 

location /{ 
    try_files $uri $uri/ =404; 
} 
} 

Sitede bulunan nginx söyler kök kısmı eksik.