Nginx和node.js路由问题

时间:2013-10-14 00:00:23

标签: node.js api nginx

我已经设置了nginx用于服务我的节点web应用程序(api + web)但是我看到服务器只响应“/”(web root)调用。 当我测试它时,我看到主网页(位于/index.html),但没有图像或CSS样式,也没有路由/ api / v1 / ....(/ api / v1 / users,无法访问/ api / v1 / cars等)因为nginx响应“未找到”。

当前的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以便为所有路由提供服务?

1 个答案:

答案 0 :(得分: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 ] 
}