技术解析

nginx 为什么不能反代图片?
0
2021-05-20 21:17:15
idczone

我的 nginx 配置

    location ^~ /images/ {
        alias /home/honmaple/storage/images/;
        expires 1d;
    }
    location ~* ^/admin/(.*)/static/ {
        alias /home/honmaple/.virtualenvs/blog/lib/python3.4/site-packages/flask_admin/static/;
        access_log off;
        expires 1d;
    }
    location ~ ^/(api|admin)/ {
        proxy_pass http://127.0.0.1:8001;
        proxy_redirect     off;
        proxy_set_header Host $host;
        proxy_set_header X抗投诉服务器-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location / {
        return 403;
    }

图片路径类似这样 xxx.com/images/admin/thumb/2017/03/148941736894194.png

但是直接访问 url 会变成 xxx.com/images/admin/thumb/2017/03/148941736894194.png /, 多了一个斜杠,并且报错 404,
查看日志,发现是这样

2017/03/14 00:26:05 [error] 2288#2288: *15061 "/home/honmaple/storage/images/admin/thumb/2017/03/148941736894194.png/index.html" is not found (2: No such file or directory), client: 1.1.1.1, server: xxx.com, request: "GET /images/admin/thumb/2017/03/148941736894194.png/ HTTP/1.1", host: "xxx.com"

请教一下这是哪里的配置有问题


location /images {
root /home/honmaple/storage/images/;

这个我试过了,还是 404

求今后不要 xxx ,用 example 多好。建议大家找个人多的地方点开(逃
检查 /home/honmaple/storage/images/admin/thumb/2017/03/148941736894194.png 是否存在
然后 sudo -u nginx cat 一下看看 nginx 有没有权限
检查所有父目录, nginx 必须有 r 和 x 权限
先找找是谁发的跳转。 Nginx 只有当有对应路径的文件夹时才会自动发加斜杠 302
你这就错了,楼主的 alias 写法没错,或者
location /images/ {
root /home/honmaple/storage/;

location /images/ {
alias /home/honmaple/storage/images/;
这么写的没问题

发完才看到楼上写乐,写的挺全的,忽略我的吧

好吧,以后用 example.com
/home/honmaple/storage/images/admin/thumb/2017/03/148941736894194.png 文件是存在的,nginx 我用的是 root 账户,应该不存在权限的问题

148941736894194.png 是一个文件,不知道为什么会自动加斜杠

T_T 教室里点开吓死我了……

```
location ^~ /images/ {
alias /home/honmaple/storage/images/;
expires 1d;
autoindex off;
}
```

还是不行

location /images {
alias /home/honmaple/storage/images;
access_log /dev/null;
expires 1d;
}
本地测试了下没问题

我的哥 搞事情 刚刚跟同学手机看了下 V2EX 一堆人围着。。。。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服