[实践] nginx代理图片接口超时返回默认图片的配置方法

199 阅读1分钟

背景

在开发地图系统的时候,我们面临一个问题,就是当地图资源不存在的时候浏览器是直接报404错误的,这个错误导致了地图操作的卡顿问题,而且由于长时间的等待超时也影响着其他请求的发送.对此我们需要思考出一种能够解决加载报错和超时的解决方案.

我们首先想到的就是设置默认图片,这也是我最终使用的方法,就是通过nginx配置代理转发并设置超时时间,当超过超时时间时就返回默认的图片.具体的配置如下

http {
    server {
        listen       9999;
        server_name  localhost;
        # 配置图片代理地址
        location /vt/ {
            proxy_pass http://mt1.google.com/vt/;
            # proxy_set_header Host $host;
            # proxy_set_header X-Real-IP $remote_addr;
            # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            # 设置超时时间为 15 秒
            proxy_connect_timeout 15s;
            proxy_read_timeout 15s;            
            # 配置错误转发地址
            error_page 404 500 502 503 504 = /vt2.jpeg;
        }
        # 
        location =/vt2.jpeg {
           # 默认图片 
           alias /home/xing/Pictures/123123123123.jpeg;
           error_page 404 123123123123.jpeg;
        }
    }