2017-01-13 4 views
1

J'ai un problème avec ma configuration Nginx. J'ai deux projets angularjs2 séparés qui devraient fonctionner avec une instance de nginx. Les applications sont séparées en deux dossiers/admin et/webapp.Nginx config avec plusieurs projets AngularJS2 en utilisant HTML5Mode

Maintenant, ce que j'essaie de faire, c'est quand j'appelle mydomain.com, il devrait ouvrir l'application dans/webapp. Si j'appelle mydomain.com/admin, il devrait ouvrir l'application d'administration (qui est aussi une application angularj2).

Ce que j'ai essayé est jusqu'à présent les éléments suivants:

server { 
    listen  80; 
    server_name localhost; 
    root /usr/share/nginx/html/webapp;  
    index index.html index.htm; 

    location/{ 
    index index.html index.htm; 
    try_files $uri /index.html; 
    } 

    location /admin/ { 
    alias /usr/share/nginx/html/admin/; 
    try_files /admin/$uri /admin/index.html; 
    } 
} 

J'espère pouvoir obtenir de l'aide. Merci d'avance!

Répondre

0

Essayez:

root /usr/share/nginx/html/webapp;  
index index.html index.htm; 

location/{ 
    try_files $uri $uri/ /index.html; 
} 

location /admin { 
    root /usr/share/nginx/html; 
    try_files $uri $uri/ /admin/index.html; 
} 

La directive root est préférable à la directive alias. Voir this document pour plus de détails. La directive index est héritée et n'a pas besoin d'être répétée.

Les termes $uri/ encourageront nginx à ajouter un / à l'URI d'un répertoire de sorte que la directive index fonctionne correctement. J'ai également corrigé certains de vos termes try_files. Voir this document pour plus de détails.

+0

Wow merci beaucoup! Cela a aidé !! – hesyar

+0

J'ai essayé de supprimer/admin/de try_files et de l'ajouter à root dans l'emplacement "/ admin" mais cela ne fonctionne pas. Savez-vous peut-être pourquoi? – hesyar

+0

Où est '/ admin/index.html'? Ma réponse suppose qu'il se trouve dans '/ usr/share/nginx/html/admin/index.html'. La variable '$ uri' inclut déjà'/admin/'- elle ne devrait donc pas apparaître dans l'instruction' root'. –