NGINX反向代理&静态文件

时间:2017-04-13 15:19:38

标签: nginx server reverse-proxy

我想通过NGINX反向代理我的NodeJS后端,但我不断收到403 Forbidden Error,由NGINX记录为

[error] 10#10: *1 directory index of "/usr/share/nginx/html/" is forbidden, 
client: 172.20.0.1, server: localhost, request: "GET / HTTP/1.1", 
host: "localhost:8888

我对服务器块的配置:

server {

  charset utf8;
  listen 80 default_server;

  location / {
      proxy_pass  http://localhost:5000;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_cache_valid 200 1s;
  }

  location /assets/ {
      expires 30d;
      add_header Cache-Control "public";
      root /usr/share/nginx/html/;
      try_files $uri =404;
  }
}

在做了一些研究后,似乎它可能与NGINX identifying / as a query for a directory listing有关,并且很可能要求我添加index index.html来解决问题(它没有)。对于反向代理,我的配置也匹配that presented by the official NGINX configurations

有没有人知道如何解决这个问题?

任何帮助将不胜感激! 干杯:)

1 个答案:

答案 0 :(得分:1)

它使用的服务器localhost是另一个server阻止。

您问题中的server块是默认服务器,但另一个块具有明确的server_name localhost语句,该语句优先。

您应该删除其他服务器块,以便只有一个服务器块,它将始终使用。

问题文件位于/etc/nginx/conf.d/default.conf

this document中解释了server块的选择。