一个很迷惑的问题整了我一晚上,我在服务器上新加了个网站,用nginx反代到一个后端,但是因为是复制的另一个有静态文件的网站的配置来改的,忘了删nginx的root配置了,于是这个本该是单纯反代的配置就有了一个静态文件输出的功能.
在我发现问题把root选项去掉了之后,它依然保留了静态文件输出的功能,而且文件路径改到默认静态文件目录了,我甚至可以打开nginx的默认index.html,不管我怎么改,一些特定后缀的地址都会被nginx拦截下来当作静态文件去找,然后返回404,根本不pass到后端去。
在我翻了一圈配置文件看到底是哪里出问题的时候,发现了在一个expires.conf里定义了这么两个规则
location ~ .*\.(js|css|html)$ { expires 10d; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|mp4|mp3)$ { expires 30d; }
所有出问题的后缀都是这里面定义的后缀,当我把这几行全都注释掉了之后重启了nginx,这个问题竟然就解决了。
但更奇怪的地方是,在这个出问题的站的配置上根本就没有include这个配置文件,我到现在还是没搞清到底是咋回事。
总之 It Works!
本文发布于 https://luojia.me
本站文章未经文下加注授权不得拷贝发布。