为什么nginx无法在不同位置提供网站服务?

时间:2015-07-10 00:21:31

标签: nginx

我想使用nginx来托管一些静态html,它位于我电脑的不同路径中,下面是我的配置:

server {
    listen       8080;
    server_name  localhost;


    location /chatserver {
        root /Users/xxxx/gitrepo/chatserver/public;
        index index.html;
    }

    location /test {
        root /Users/xxxx/test/test_site;
        index index.html;
    }

文件结构为:

Users
  |-xxxx
    |-gitrepo
    |  |-chatserver
    |       |-public
    |          |- index.html
    |-test
       |-test_site
            |- index.html 

但是当我访问:http://localhost:8080/chatserverhttp://localhost:8080/test时,nginx始终会响应404 Not Found

如果我访问:http://localhost:8080/,nginx将返回默认的nginx欢迎页面。

为什么我的配置不起作用?

1 个答案:

答案 0 :(得分:2)

我认为您应该使用alias代替root

在您的示例中,网址/chatserver/index.html将搜索/Users/xxxx/gitrepo/chatserver/public/chatserver/index.html(注意chatserver之后的"不受欢迎的" public!)。查看您的nginx日志文件!

请参阅documentation of rootdocumentation of alias