惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

TaoSecurity Blog
TaoSecurity Blog
Jina AI
Jina AI
雷峰网
雷峰网
月光博客
月光博客
The GitHub Blog
The GitHub Blog
WordPress大学
WordPress大学
B
Blog RSS Feed
美团技术团队
C
CXSECURITY Database RSS Feed - CXSecurity.com
小众软件
小众软件
Security Latest
Security Latest
Microsoft Azure Blog
Microsoft Azure Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cybersecurity and Infrastructure Security Agency CISA
Last Week in AI
Last Week in AI
A
Arctic Wolf
Latest news
Latest news
Attack and Defense Labs
Attack and Defense Labs
I
Intezer
F
Fortinet All Blogs
罗磊的独立博客
MongoDB | Blog
MongoDB | Blog
Webroot Blog
Webroot Blog
S
Secure Thoughts
Help Net Security
Help Net Security
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
V
Visual Studio Blog
P
Proofpoint News Feed
博客园 - 【当耐特】
P
Privacy International News Feed
V
Vulnerabilities – Threatpost
Stack Overflow Blog
Stack Overflow Blog
Know Your Adversary
Know Your Adversary
云风的 BLOG
云风的 BLOG
Hacker News: Ask HN
Hacker News: Ask HN
L
LINUX DO - 最新话题
H
Help Net Security
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
S
SegmentFault 最新的问题
Forbes - Security
Forbes - Security
T
Tailwind CSS Blog
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tenable Blog
Cloudbric
Cloudbric
N
News and Events Feed by Topic
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hugging Face - Blog
Hugging Face - Blog

博客园 - 卢伟亮

ArcGIS Server如何使用查询图层(QueryLayer)发布自定义坐标系数据(支持查询和编辑) ArcGIS Pro如何引用自定义Python模块 ArcGIS Pro 3创建Python环境失败的解决方法 ArcGIS Pro 补丁 如何使用阿里云OSS存储发布ArcGIS缓存地图服务 反注册PostgreSQL企业级地理数据库中的要素类 ERROR: Unable to start the RMI connector for NodeAgent的ArcGIS Server启动错误 检查SDE版本健康情况的常用SQL语句 免重启下刷新新添加的磁盘信息 启用只使用PostGIS的ArcSDE Geodatabase ArcSDE 版本差异提取 ArcSDE归档记录迁移 大体量点位置数据动态聚合Binning可视化效果 如何解决Portal无法设置托管GIS服务器的问题 Schema is out of date,Retry as owner or sdeadmin 问题解决方法 如何使用ArcGIS Pro发布自定义打印服务 ArcGIS Enterprise 10.7.1新特性:批量发布服务 影像优化 OptimizeRaster工具包介绍 Pro自定义数据源原理
ArcGIS Server前端Varnish缓存解决方案
卢伟亮 · 2020-01-02 · via 博客园 - 卢伟亮

前一阵子,有客户反馈到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接口,访问security\config\update进行更新。

添加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反向代理。