原因分析:
原先的配置文件如下:
访问文件发现一直显示404错误。排查想法是查找相应的错误日志,看nginx最终到磁盘的哪个路径下寻找文件,从而定位错误原因。
最初以为错误日志是在这个路径下
但是查看错误日志,发现只有请求的url错误信息,但是nginx具体是到哪个目录下去查找文件,这没有显示。
后来发现配置文件中还有这一段:
于是将两个log的路径修改为实际存在的路径,最终在错误日志中找到了具体的路径信息:
发现是去server下的root去寻找文件。
于是怀疑是否是root的优先级问题。
在Bing上搜索:
在nginx配置文件 location段 匹配优先规则 附 root 和 alias 的区别这篇文章中,基本确认我们自己配置的root路径的优先级低于宝塔面板内置规则的优先级,即下面的配置优先级高:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log /dev/null;
}
解决方案:
参考宝塔中已有的配置,将我们原先的配置修改成下面这样:
即在原来的基础上加上 ~ ^,再次访问图片显示成功。