node.js服务器返回/,来自/ public/via nginx的静态文件?

Fra*_*fer 5 nginx node.js

我对Rasmus Andersson很棒的node.js EC2模板有点问题http://rsms.me/2011/03/23/ec2-wep-app-template.html

好的,问题是

我想根节点http://www.mydomain.com/ response由node.js服务器(侦听端口3000)提供

nginx应该仍然从/ public /提供静态的所有东西(所以nginx应该在/ public/first中查看,如果它没有将请求传递给端口3000上的node.js),即:

这是我的/etc/nginx/sites-available/mydomain-http配置文件.我知道我将不得不重写位置/部分,但我不知道我应该放在那里.

多谢

## Access over HTTP (but not HTTPS)
server {
  listen        80;
  listen        [::]:80 default ipv6only=on;
  access_log    /var/log/nginx/access.log;
  location / {
    root        /var/mydomain/public;
    index       index.html;
    error_page  404 = @backend;
  }
  location @backend {
    proxy_pass          http://127.0.0.1:3000;
    proxy_set_header    X-Client-IP  $remote_addr;
  }
}
Run Code Online (Sandbox Code Playgroud)

Fra*_*fer 3

我自己回答这个问题,因为我在经历了很多“哦天哪......我不敢相信这不起作用”之后找到了解决方案。我的案例中缺少的是

error_page 403 = @backend;
Run Code Online (Sandbox Code Playgroud)

在主服务器块中,作为 / 的请求没有返回 http 404(未找到文件),而是返回 http 403(无法访问)。

该问题已作为问题编号提交回项目。5 https://github.com/rsms/ec2-webapp/issues#issue/5