美文网首页python
nginx图片不存在时给一张默认图片或转发到另一台服务器获取

nginx图片不存在时给一张默认图片或转发到另一台服务器获取

作者: yichen_china | 来源:发表于2019-07-03 10:36 被阅读0次

    如何在图片不存在时候给一张默认图片呢?通过程序执行就行呗,程序有时候可能考虑不到这个问题,每次去判断图片是否存在也太麻烦了。最简单的就是通过图片配置实现。nginx如何实现图片不存在就给一张默认图片呢?这里主要通过404错误实现。在页面出现404 error时可以给一个默认页面,所以一样滴在图片不存在时也可以给一张默认的图片。以图片为主的网站,更要配置默认显示的图片了。下面来看看我的小站是如何配置的。

    【一】nginx图片不存在时给一张默认图片

    location /images/ {
    alias /home/plp/images/;
    error_page 404 default.jpg;
    }
    

    /home/plp/images/ 下我放了两张图片:

    -rw-rw-r– 1 plp plp 80607 Nov 16 07:59 10.jpg
    -rw-rw-r– 1 plp plp 255 Nov 16 07:59 default.jpg
    

    10.jpg 正常图片,default.jpg是默认图片。

    我们访问下试试

    192.168.0.1/images/10.jpg
    192.168.0.1/images/default.jpg
    

    我们随便访问一张图片192.168.0.1/images/11.jpg
    另外参考:

    if (!-f $request_filename) {            #原图片不存在,返回前当目录下的缺省图片
        rewrite ^(/uploads/.*/).*$ $1default.jpg break;
        }
    
    error_page 404 =200 /default.jpg;        #当目录下的缺省图片不存在时,返回一个指定的缺省文件,确保存在此文件,否则可能进入死循环 注意(404 =200)404后有一个空格,要不然配置会报错,这样的配置是把客户端看到的404 改为200
    

    【二】配置nginx如果获取不到图片 去另外一台服务器获取

    location ^~ /uploads/ {
            root /data/weiwend/weiwang;
            try_files $uri @new_uploads;
        }
        
        location @new_uploads {
            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;
            proxy_pass http://172.17.0.101:80;
        }
    

    在负载均衡的容器里配置,try_files 失败转到另外一台容器

    相关文章

      网友评论

        本文标题:nginx图片不存在时给一张默认图片或转发到另一台服务器获取

        本文链接:https://www.haomeiwen.com/subject/iaafhctx.html