Nginx代理天地图 缓存底图瓦片配置

解决天地图每日限制访问次数的问题

支持的地址或服务:

  1. api.tianditu.gov.cn/api

  1. api.tianditu.gov.cn/cdn/*

  1. t[0-6].tianditu.gov.cn

将以上匹配的路径对应的域名更换为:tdt.host.com:8096

nginx配置如下:

upstream tianditu_server {
        server t0.tianditu.gov.cn weight=1 max_fails=2 fail_timeout=30s;
        server t1.tianditu.gov.cn weight=1 max_fails=2 fail_timeout=30s;
        server t2.tianditu.gov.cn weight=1 max_fails=2 fail_timeout=30s;
        server t3.tianditu.gov.cn weight=1 max_fails=2 fail_timeout=30s;
        server t4.tianditu.gov.cn weight=1 max_fails=2 fail_timeout=30s;
        server t5.tianditu.gov.cn weight=1 max_fails=2 fail_timeout=30s;
        server t6.tianditu.gov.cn weight=1 max_fails=2 fail_timeout=30s;
    }
server {
        listen       8096;
        server_name tdt.host.com;
        location /api {
                set $agent 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.67';
            #add_headers 'Access-Control-Allow-Origin: *';
            #add_header Access-Control-Allow-Headers X-Requested-With;
            #add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
                #使用缓存名称
                proxy_cache pitchcache;
                #对以下状态码实现缓存
                proxy_cache_valid 200 206 304 301 302 1d;
                #缓存的key(url)
                proxy_cache_key $uri$is_args$args;
                # add_header X-Cache-Status $upstream_cache_status;
                #反向代理地址
                proxy_pass http://api.tianditu.gov.cn/api;
                proxy_set_header User-Agent $agent;
                proxy_set_header DNT 1;
                proxy_set_header Host 'api.tianditu.gov.cn';
                if ($arg_tk = '') {
                        set $args $args&tk=b2c181fe741e64bd6513dab0c0733c62;
                }
                set $arg_tk 'b2c181fe741e64bd6513dab0c0733c62';
        }
 

       location /cdn/ {
                set $agent 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.67';
            #add_headers 'Access-Control-Allow-Origin: *';
            #add_header Access-Control-Allow-Headers X-Requested-With;
            #add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
                #使用缓存名称
                proxy_cache pitchcache;
                #对以下状态码实现缓存
                proxy_cache_valid 200 206 304 301 302 1d;
                #缓存的key(url)
                proxy_cache_key $uri$is_args$args;
                # add_header X-Cache-Status $upstream_cache_status;
                #反向代理地址
                proxy_pass http://api.tianditu.gov.cn/cdn/;
                proxy_set_header User-Agent $agent;
                proxy_set_header DNT 1;
                proxy_set_header Host 'api.tianditu.gov.cn';
                if ($arg_tk = '') {
                        set $args $args&tk=天地图key;
                }
                set $arg_tk '天地图key';
        }

        location / {
                set $agent 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.67';
            #add_header Access-Control-Allow-Headers X-Requested-With;
            #add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
                #使用缓存名称
                proxy_cache pitchcache;
                #对以下状态码实现缓存
                proxy_cache_valid 200 206 304 301 302 1d;
                #缓存的key(url)
                proxy_cache_key $uri$is_args$args;
                # add_header X-Cache-Status $upstream_cache_status;
                #反向代理地址
                proxy_pass http://tianditu_server/;
                proxy_set_header User-Agent $agent;
                proxy_set_header DNT 1;
                proxy_set_header Host 't4.tianditu.gov.cn';
                if ($arg_tk = '') {
                        set $args $args&tk=天地图key;
                }
                set $arg_tk '天地图key';
        }

}
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Nginx是一款高性能的Web服务器软件,也可以用作反向代理和负载均衡器。在Nginx配置地图缓存可以提高网站的响应速度和性能。 首先,我们需要确保已经安装了Nginx并且可以正常运行。然后,进入Nginx配置文件目录,一般在/etc/nginx/下。 在该目录下找到nginx.conf文件,打开并进行编辑。在http块中添加以下配置: ``` http { ... proxy_cache_path /path/to/cache levels=1:2 keys_zone=cache_zone:10m; proxy_temp_path /path/to/temp; ... } ``` 其中,/path/to/cache表示指定的缓存路径,levels=1:2表示设定缓存目录结构,keys_zone=cache_zone:10m为缓存区域的名称和大小。 接下来,在需要使用地图的地方(如location块)添加缓存配置: ``` location /map { proxy_cache cache_zone; proxy_pass http://api.tianditu.com/; proxy_cache_valid 200 1d; proxy_cache_valid any 10m; proxy_ignore_headers Cache-Control; proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; } ``` 上述配置中,proxy_cache表示要使用缓存,cache_zone为前面配置缓存区域名称,proxy_pass设置为地图接口的URL,proxy_cache_valid设定缓存的有效时间,proxy_ignore_headers忽略后端返回的Cache-Control头信息,proxy_cache_use_stale设置在后端服务器出现错误或超时时使用过期缓存。 最后,保存并退出nginx.conf文件,并使用以下命令重新加载Nginx配置: ``` sudo nginx -s reload ``` 这样,Nginx就会按照配置地图的内容缓存在指定的路径下,提高访问速度和性能。需要注意的是,配置缓存时要根据具体的需求进行调整,以保证最佳的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值