2017-01-13 13 views
1

У меня проблема с моей конфигурацией Nginx. У меня есть два отдельных проекта angularjs2, которые должны работать с одним экземпляром nginx. Приложения разделены на две папки/admin и/webapp.Конфигурация Nginx с несколькими проекциями AngularJS2 с использованием HTML5Mode

Теперь, что я пытаюсь сделать, когда я вызываю mydomain.com, он должен открыть приложение в/webapp. Если я вызываю mydomain.com/admin, он должен открыть приложение администратора (которое также является приложением angularj2).

То, что я пытался до сих пор является следующее:

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; 
    } 
} 

Я надеюсь, что я могу получить помощь. Заранее спасибо!

ответ

0

Try:

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; 
} 

директива root является более предпочтительным, чем alias директивы. См. this document.

Директива index наследуется и ее не нужно повторять.

В $uri/ условия будут способствовать nginx для добавления / к URI из каталога, так что index директива работает правильно. Я также исправил некоторые из ваших условий try_files. См. this document.

+0

Wow большое спасибо! Это помогло! – hesyar

+0

Я попытался удалить/admin/from try_files и добавить его в root в «/ admin», но это не работает. Вы, может быть, знаете почему? – hesyar

+0

Где находится '/ admin/index.html'? Мой ответ предполагает, что он находится в '/ usr/share/nginx/html/admin/index.html'. Переменная '$ uri' уже включает'/admin/'- поэтому она не должна появляться в инструкции' root'. –

 Смежные вопросы

  • Нет связанных вопросов^_^