nginx在location中设定error_page引发的问题
[2010-04-13 11:11:16]
先看看这段配置:
server {
include port.conf;
server_name xx.xxxx.com;
location / {
proxy_pass http://xx.xxxx.com;
include proxy.conf;
charset UTF-8;
}
location /img/ {
alias /data/html/img/;
error_page 404 =200 /images/default.jpg;
}
}
这段配置里粗体的部分是我后加进去的,加进去以后,访问/img/下的不存在文件/img/abc,居然从后端服务器返回404错误,显示/img/abc不存在。
照理说,nginx应该先在location /img/中找/img/abc文件,出现404,然后再去到后端服务器找/images/default.jpg,/image/default.jpg是能访问的,所以最后不应该出现404。
实在是想不通nginx处理这种情况的逻辑,所以只好加上一个location:
location /images/ {
alias /data/html/images/;
}
这样才能解决问题。