• ArcGIS Server前端Varnish缓存解决方案


    前一阵子,有客户反馈到ArcGIS Server功能虽好,但在面向大量高并发请求时,经常会导致内置的tomcat服务器响应不过来,希望能针对静态内容,例如切片、服务目录这些内容能提供一个缓存机制。

    联想到Varnish作为业界主流的缓存软件,笔者就提出了采用Varnish作为ArcGIS Server前端缓存代理的一个配置方案。其总体配置架构如下图:

    Web服务器配置:CentOS 7 Linux

    Nginx版本:1.16.1

    Varnish版本:  6.0.5

    步骤

    下载并编译Varnish。

    找到Varnish服务所使用的配置文件。

    systemctl status -l | grep varnish

    通过返回的描述中可知,当前使用的配置文件为/etc/varnish/default.vcl

    启用GIS服务器的HTTP端口

    访问admin REST接口,访问securityconfigupdate进行更新。

    添加GIS服务器。

    打开default.vcl,在默认的backend中添加GIS服务器的地址。

    backend default {

           .host = “192.168.1.83”

           .port = “6080“

    }

    修改GIS服务REST地址的HTTP请求Header。

    修改default.vcl,在vcl_recv子程序上添加:

    if(req.url ~ “^/arcgis”) {

           unset req.http.Cookie;

           unset req.http. Cache-Control;

    }

    修改default.vcl,在vcl_backend.fetch子程序上添加:

    unset berep.http.X-Forward-For;

    unset berep.http.Cache-Control;

    unset berep.http.Vary;

    set beresp.ttl =120s;

    使用varnishstat命令来检查是否缓存机制是否生效。在命令行窗口中输入:

    varnishstat -f MAIN.cache_hit

    打开浏览器,访问ArcGIS Server REST 服务目录中任意服务的地址,例如:

    http://192.168.31.38:6081/arcgis/rest/services/Guangzhou/MapServer?f=json

    第一次访问的时候,应该会在监控命令行窗口看到以下字样:

    MAIN.cache_miss   1

    这代表初次访问时,由于没有缓存记录,所以没有命中。

    后续再次访问上述URL地址时,应该会在监控命令行窗口看到以下字样:

    MAIN.cache_hit   1

    这代表查找到了缓存记录,命中次数为一次。

    由于Varnish不支持HTTPS协议,所以假如需要通过HTTPS协议来访问被缓存的ArcGIS Server REST服务,这时可以在Varnish的前端再多部署一个Nginx反向代理。

  • 相关阅读:
    RAID的详细配置
    RAID的基本介绍
    Linux的远程管理
    Linux防火墙iptables的基础
    【oacle入门】表空间类型
    【oracle入门】数据完整性约束
    【oracle入门】数据模型
    【Oracle入门】数据库的二级映像
    【oracle入门】数据库系统结构----三级模式
    【oracle入门】Oracle数据库11g企业版主要优点
  • 原文地址:https://www.cnblogs.com/luwl/p/12132345.html
Copyright © 2020-2023  润新知