使用nginx别名提供静态内容,/ dir和/ dir /之间有什么区别?

时间:2018-04-02 21:00:44

标签: nginx server

我正在设置一个nginx服务器来提供我index.html中存储的/data/www/test/页面。

这是我的配置文件(/etc/nginx/sites-enabled/default):

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.html index.htm;

    server_name localhost;

    location / {
        try_files $uri $uri/ =404;
    }

    location /test/ {
        alias /data/www/test/;
        index index.html;
    }
}

我可以curl 0:80查看/usr/share/nginx/html/index.html的内容。

我可以curl 0:80/test/查看/data/www/test/index.html的内容。

但是当我curl 0:80/test时,我得到了404。

我希望能够看到html是否输入/test/test/

有人可以解释一下这里发生了什么吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

就像请求/test返回测试文件的格式一样,配置将匹配location /并在root路径中找到测试文件。 您可以尝试touch /usr/share/nginx/html/test并再次访问/test

/test/的请求将与location /test/匹配,在内容阶段,它会在root/alias指定位置查找索引文件。