回答
收藏
分享
举报
如何做目录隔离
提问于2020-06-04 22:01

浏览 754

今天晚上听陶辉老师的课,问了一个问题,可能是我没有描述清楚,陶辉老师让我看看有关域名匹配的

的文章。但我的问题不是域名匹配

我的问题是:

   我有一个域名a.xxx.yy 在配置时root指定在/home/data下,另一个域名b.xxx.yy在配置时root指定在/home/data/news下,遇到的问题是:/home/data/news/2.html,本意是这个文件只能通过b.xxx.yy/2.html访问,但现在发现通过a.xxx.yy/news/2.html也能访问到这个文件,如何实现在不动目录层次关系的情况下,实现2.html文件只能通过b.xxx.yy/2.html,而不能通过a.xxx.yy/news/2.html进行访问,也就是对有父子关系的目录进行隔离。

已修改于2023-03-06 02:09



写下您的回答
发表回答
全部回答(3)

按点赞数排序

按时间排序

你好环山绕水,抱歉昨天直播时没看清你的问题,现在明白了,你可以对子目录做精确匹配后,用403拒绝:

比如下面这样就可以:

server{

    server_name www.xxx.com;

    root /home/data;

    location /news {

        return 403;

    }

}

这样,所有news子目录下的文件都会拒绝。当location比较复杂的时候,你必须考虑匹配的优先级,因为url前缀匹配优先级较低,如果有正则表达式能够命中2.html的话,你还要调整相应的正则location,如果有这种情况,你可以参考下这篇文章:https://www.nginx-cn.net/article/69

赞同

5

回复举报

回答于2020-06-05 08:38



回复陶辉
回复

a.png

赞同

5

回复举报

回答于2020-06-04 22:15



回复环山绕水
回复

感谢,陶辉老师百忙之中做了回答

赞同

4

回复举报

回答于2020-07-06 15:55



回复环山绕水
回复
提问者
环山绕水
这家伙很懒还未留下介绍~
0
文章
3
问答
1
粉丝
相关问答

没办法完全不受影响的,因为mirror是子请求,当子请求未结束时,主请求消耗的内存至少是无法释放的。你可以尝试在/mirror里,把超时时间大幅度调低,包括connect/read/send,再压下看看。

点赞 0
浏览 1.3k

allow 192.168.1.0/24 可以允许ip 或ip 段。

点赞 0
浏览 481