Nginx 配置 - 服务 index.html 不起作用

Nginx 配置 - 服务 index.html 不起作用

我不知道如何重定向/index.html。我浏览了 serverfault 上的帖子,我想我已经尝试了所有建议,包括:

  • 重写语句location /
  • index index.html在静态内容级别serverlocation /
  • node.js代理声明移至location ~ /i而不是 在内location /

显然我的配置中其他地方出了问题。这是我的 nginx.conf:

worker_processes  1;

pid        /home/logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include            mime.types;
    default_type       application/octet-stream;
    sendfile           on;
    keepalive_timeout  65;

    error_log   /home/logs/error.log;
    access_log  /home/logs/access.log combined;

    include sites-enabled/*;
}

我的服务器配置位于 sites-enabled

server {
  root        /home/www/public;
  listen      80;
  server_name localhost;

  # proxy request to node
  location / {
    index index.html index.htm;
    proxy_set_header   Host             $http_host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_set_header   X-NginX-Proxy    true;

    proxy_pass         http://127.0.0.1:3010;
    proxy_redirect     off;
    break;
  }  

  #  static content
  location ~ \.(?:ico|jpe?g|jpeg|gif|css|png|js|swf|xml|woff|eot|svg|ttf|html)$ {
    access_log  off;
    add_header  Pragma public;
    add_header  Cache-Control public;
    expires     30d;  
  }

  gzip on;
  gzip_vary on;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_proxied any;
  gzip_min_length  1000;
  gzip_disable     "msie6";
  gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
}

其余一切都运行良好。请求正确地代理到节点,静态内容也正确地提供。我只需要能够将对 的请求转发//index.html

答案1

基本上,root指令(在位置块内)没有提到完整路径。另外,指令;末尾缺少a index(可能是拼写错误,nginx 通常会捕获这些拼写错误)。

因此,位于 sites-enabled 中的服务器配置将如下所示(经过上述两项更改)...

服务器 {
  根/主页/www/公共;
  听80;
  服务器名称本地主机;
  索引 index.html index.htm;

  # 代理请求到节点
  位置@proxy {
    proxy_set_header 主机 $http_host;
    proxy_set_header X-真实IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-NginX-Proxy true;

    代理密码 http://127.0.0.1:3010;
    代理重定向关闭;
    休息;
  }

  地点 / {
    尝试文件$uri $uri/@proxy;
  }

# 其余配置
# ...
# ...

}

相关内容