2013-10-14 3 views
1

Я установил nginx для обслуживания своего веб-приложения узла (api + web), но, как я вижу, сервер отвечает только на вызовы «/» (веб-root). Когда я его тестирую, я вижу главную веб-страницу (расположенную в /index.html), но без изображений или стилей CSS, а также api, который находится в route/api/v1/.... (/ api/v1/users ,/api/v1/cars и т. д.) не может быть достигнуто, потому что nginx отвечает «не найден».Nginx и node.js route issue

Текущая конфигурация Nginx является:

server { 
    listen 80; 
    server_name localhost www.mydomain.com mydomain.com 

    access_log off; 
    error_log off; 

    location =/{ 
     proxy_pass http://127.0.0.1:3000; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-Real-IP $remote_addr; 
    } 
} 

Как я могу настроить Nginx для того, чтобы обслуживать все маршруты?

ответ

2

Чтобы соответствовать всем маршрутам, оставьте знак =. Директивы с префиксом = будут точно соответствовать запросам. Более подробную информацию можно найти here.

location/{ 
    proxy_pass http://127.0.0.1:3000; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Real-IP $remote_addr; 
} 

Вот образцы из документации:

location =/{ 
    # matches the query/only. 
    [ configuration A ] 
} 
location/{ 
    # matches any query, since all queries begin with /, but regular 
    # expressions and any longer conventional blocks will be 
    # matched first. 
    [ configuration B ] 
} 
+0

упс! Ты прав. большое спасибо – Endymion