有些通过阿里云北京授权分销商万维景盛采购了阿里云服务器的小伙伴,在配置反向代理服务器时,遇到rename failed Not a directory的报错,向万维景盛工程师求助,万维景盛工程师就将linux操作系统下是不是文件夹这个哲学问题相关的解决方案分享一下。
nginx通过proxy_store组件进行反向代理报错rename failed Not a directory报错的具体内容如下:
2022/12/22 14:18:39 [crit] 31023#0: *1271126 rename() "/www/wwwroot/scape.com/0000005112" to "/www/wwwroot/scape.com/" failed (20: Not a directory) while reading upstream, client: 111.199.147.193, server: scape.com, request: "GET / HTTP/1.1", upstream: "https://123.123.123.123:443/", host: "hzln11wtcimde.myhost.com.cn"
要搞清楚这个报错,万维景盛工程师要先请小伙伴们了解清楚Linux的一个知识点,那就是对于Linux来讲,文件夹和文件是一回事,所以一个没有后缀的文件名与一个同名文件夹,交给linux服务器系统去别人,那么他就蒙圈了,傻傻分不清。那问题来了,如果我要在根目录下同时下载一个叫apple的文件,并创建一个叫apple的目录行不行?
答案是,linux系统说不行!因为我分不清你们谁是谁!
那如果我决定不了这个文件名和文件夹名(或叫目录名)怎么办呢?
那么linux操作系统会本着先来先得的原则分配资源。如果先下载了apple这个文件,那么等apple这个目录需要创建的时候,对不起,linux系统说apple已经被人占用了,我创建不了了!你就算了吧!于是apple这个目录就没创建成功!并且报错:failed (20: Not a directory)!意思是说,你来捣什么乱!你这箱子写着苹果俩字我就认不出来你啦是不?!难道要我拿你当苹果吃吗?!
同样的道理,如果先创建了一个叫apple的目录,接下来再下载或创建一个叫apple文件名的文件,linux系统依然或先到先得,目录成功,文件创建失败,并且报错:failed (21: Is a directory) while reading upstream。意思是说,apple明显不是个文件夹,你又来捣什么乱!难道你要让我拿一个苹果当箱子帮你装100个苹果吗?
好了现在小伙伴们明白了吧?对于linux操作系统,包括centos、ubuntu、debian等,都是这个熊样,傻傻地搞不清文件名和文件夹,所以大家记住,先占先得,一定不要出现同级目录下有同名文件和文件夹的设计,就不会遇到这类错误了!
小伙伴们如果需要采购阿里云服务器,不妨联系阿里云代理商万维景盛,不仅可以享受折上折优惠,还能免费使用各类环境镜像和相关免费服务、增值服务。需要请加QQ/微信同号:442956988
扫一扫关注微信公众号
扫一扫访问手机站
扫一扫微信小程序
扫一扫百度小程序