当前位置: 首页 > news >正文

为ArcGIS Server配置反向代理

一般来说,ArcGIS Server会位于Web服务器之后的本地网络,在生产环境中,这个网络一般是保密的、位于防火墙之后的,这也是ArcGIS Server不建议在本地网络中启用防火墙的原因之一。但是,出于心理上的慰藉或者稀奇古怪(抑或有不得已的成分)的部署方式,不启用防火墙(或者启用了防火墙但是要开放诸如8399等端口)有时让人无法接受;或者,还有ArcGIS Server还被部署在不同的网段中等各种情况——这种时候,反向代理就需要登场了。
比如ArcGIS Server的访问方式是 http://:8399/arcgis/services/... ,在配置反向代理后,你应该就可以通过 http:///arcgis/services/... 来访问ArcGIS的服务了。同时,在配置代理的PROXY_HOST主机上,你可以只开放80端口;而所有的ArcGIS_HOST主机都位于代理主机之后,Web服务器只通过代理主机去使用ArcGIS服务,用户没有任何机会去直接访问ArcGIS Server。好,现在你想怎么部署ArcGIS Server就可以怎么部署了,只需要告诉代理主机你的ArcGIS Server在哪里,Web服务就可以使用这些服务——这时,ArcGIS Server对于Web服务器是透明的。
你可以使用Apache(mod_proxy模块)或者一些其它的服务器配置反向代理,我比较喜欢nginx的简洁和高效。比如使用下面的配置文件就可以配置一个负载均衡的反向代理服务器:
upstream arcgis{
#不同的ArcGIS Server主机
server 192.168.1.1:8399;
server 192.168.1.2:8399;
server 192.168.2.1:8399;
server 192.168.2.2:8399;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://arcgis ;
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_next_upstream error timeout invalid_header http_500 http_504 http_404;
}
}
配置完成后,使用 nginx -s reload 命令重新载入配置,反向代理就更新了,此时直接访问代理主机的80端口就使用ArcGIS Server主机上的服务了。

相关文章:

  • A potentially dangerous Request.Form value was detected from the client
  • 发布vue程序到azure
  • RHEL5下unixODBC 与 sqliteodbc 连接配置
  • 在ubuntu安装开源人脸类库dlib
  • qmake手册(初级部分)
  • 《码农经验手册》-拿到需求写代码前,要思考的问题有哪些?
  • 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之9---移动增值业务产业链...
  • 《码农经验手册》-新手和老司机
  • Azure 聊天机器人-1 环境搭建
  • Azure 聊天机器人2
  • 通过Socket configuration controls 获取网络设备地址
  • vim amp; emacs color Scheme
  • Azure 聊天机器人3-集成luis(语言识别)服务
  • Azure聊天机器人4-实现luis dialog
  • Oprofile工具的使用
  • Android Volley源码解析
  • Docker入门(二) - Dockerfile
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • ES2017异步函数现已正式可用
  • Linux各目录及每个目录的详细介绍
  • magento 货币换算
  • Mysql5.6主从复制
  • springboot_database项目介绍
  • Terraform入门 - 3. 变更基础设施
  • Transformer-XL: Unleashing the Potential of Attention Models
  • vue自定义指令实现v-tap插件
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 记一次用 NodeJs 实现模拟登录的思路
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 日剧·日综资源集合(建议收藏)
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 一个SAP顾问在美国的这些年
  • 一文看透浏览器架构
  • 正则表达式-基础知识Review
  • #laravel 通过手动安装依赖PHPExcel#
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (C语言)球球大作战
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (已解决)什么是vue导航守卫
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET 中的轻量级线程安全
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • ::before和::after 常见的用法
  • @AliasFor注解
  • @Autowired和@Resource装配
  • @JSONField或@JsonProperty注解使用
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?