2017-01-13 63 views
1

我的Nginx配置有問題。我有兩個單獨的angularjs2項目應該與一個nginx實例一起工作。 應用程序分爲兩個文件夾/ admin和/ webapp。使用HTML5Mode的多個AngularJS2項目的Nginx配置

現在我想要做的是當我打電話給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

嘗試:

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指令正常工作。我也更正了一些你的條款。詳細信息請參見this document

+0

非常感謝!這有幫助! – hesyar

+0

我試圖刪除/管理/從try_files並將其追加到「/ admin」位置的根目錄,但這不起作用。你也許知道爲什麼? – hesyar

+0

'/ admin/index.html'在哪裏?我的答案假設它位於'/ usr/share/nginx/html/admin/index.html'。 '$ uri'變量已經包含'/ admin /' - 所以它不應該出現在'root'語句中。 –