对于正式运行的环境,一般需要设置网络安全控制区DMZ,通过代理,把仅需要的端口向客户端暴露,其他内部端口应该是在防火墙包含之内的。

下文将针对ArcGIS 的Portal软件,讲述在DMZ中如何架构的问题。

架构1,使用ArcGIS提供的WebAdaptor组件。

该组件分为.Net和Java版,支持运作在微软的IIS以及常见的Java Application Server。

对于使用Web Server进行身份认证的场景下,必须使用Web Adaptor。

上图的部署架构中,WebAdaptor需要分别针对Portal和GIS Server部署两个Web应用。

在进行Portal和GIS Server进行联合的时候,需要把GIS Server的WebAdaptor代理地址填写到Services URL一栏,把GIS Server的内部6443地址填写到Administrator URL一栏。

另外需要分别设置Portal和GIS Server的WebContextURL属性,填写其对应的WebAdaptor代理地址。

架构2,使用第三方反向代理服务器。

有众多第三方反向代理服务器可以选择,只要支持HTTP和HTTPS协议的服务器都可以。

下面以常见的Apache为例进行说明。

Apache提供若干模块支持反向代理和HTTPS。

通过配置Apache的httpd.conf文件,加载这些模块:headers_module,proxy_module,proxy_http,ssl_module。

<VirtualHost _default_:80>
ServerName 192.168.1.72:80
ProxyTimeout 6000
ProxyPreserveHost On
RequestHeader add Accept-Encoding gzip
ProxyPass /portal http://portal.esrigz.com:7080/arcgis
ProxyPassReverse /portal http://portal.esrigz.com:7080/arcgis
ProxyPass /server http://portal.esrigz.com:6080/arcgis
ProxyPassReverse /server http://portal.esrigz.com:6080/arcgis
</virtualHost>

以下是HTTPS的配置

<VirtualHost _default_:443>
SSLEngine on
SSLProxyEngine on
SSLProxyCheckPeerCN off
SSLProxyVerify optional_no_ca
ProxyTimeout 6000
ProxyPreserveHost On
RequestHeader add Accept-Encoding gzip
ProxyPass /portal https://portal.esrigz.com/7443/arcgis
ProxyPassReverse /portal https://portal.esrigz.com:7443/arcgis
ProxyPass /server https://portal.esrigz.com:6443/arcgis
ProxyPassReverse /server https://portal.esrigz.com/server
ServerName 192.168.1.72:443
SSLCertificateFile "${SRVROOT}/conf/ssl/adproxy.crt"
SSLCertificateKeyFile "${SRVROOT}/conf/ssl/common.key"
</virtualhost>

除了Apache可以作为代理服务器外,目前nginx服务作为代理服务器也是十分流行的,对于nginx服务器的配置如下:

#user nobody;
worker_processes 1;

error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

pid logs/nginx.pid;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

gzip on;

server {
listen 192.168.1.72:80;
server_name 192.168.1.72;

#charset koi8-r;

#access_log logs/host.access.log main;

location /portal {
proxy_set_header Accept-Encoding "gzip";
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://portal.esrigz.com/portal;

#proxy_redirect default;

#index index.html index.htm;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

}

# HTTPS server

server {
listen 443 ssl;
server_name 192.168.1.72;

ssl_certificate adproxy.crt;
ssl_certificate_key common.key;

#ssl_session_cache shared:SSL:1m;
#ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

location /portal {
#proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Accept-Encoding "gzip";
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://portal.esrigz.com/portal;
#proxy_redirect default;
}
}

}

架构3,第三方代理服务器和WebAdaptor混合使用。

该架构能提供Web Server的身份认证功能,同时可以提供了双重代理的安全标准。

Portal的安全代理(反向代理出口)配置架构的更多相关文章

  1. nginx入门与实战 安装 启动 配置nginx Nginx状态信息(status)配置 正向代理 反向代理 nginx语法之location详解

    nginx入门与实战 网站服务 想必我们大多数人都是通过访问网站而开始接触互联网的吧.我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务. Web ...

  2. 正向代理/反向代理理解、Nginx概述、安装及配置详解

    一.Nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理, ...

  3. Squid普通代理&&透明代理&&反向代理学习

    普通代理                                                              背景                                 ...

  4. CentOS7安装部署squid服务(透明代理+反向代理)

    一.squid服务介绍 Squid是一个高性能的代理缓存服务器,Squid支持FTP.gopher.HTTPS和HTTP协议.和一般的代理缓存软件不同,Squid用一个单独的.非模块化的.I/O驱动的 ...

  5. linux之反向代理,反向代理实例,负载均衡实例

    目录 nginx反向代理 1. 概述 2. 反向代理服务器的工作原理 (1)作为内容服务器的替身 (2)作为内容服务器的负载均衡器 二. nginx反向代理实例 1.前期准备 2.代理服务器配置 3. ...

  6. 理解正向代理&反向代理

    通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中.由于外部网络上的主机并不会配置并使用这个 ...

  7. Nginx的正向代理-反向代理-负载均衡

      正向代理与反向代理[总结]   1.前言 最近工作中用到反向代理,发现网络代理的玩法还真不少,网络背后有很多需要去学习.而在此之前仅仅使用了过代理软件,曾经为了访问google,使用了代理软件,需 ...

  8. linux下正向代理/反向代理/透明代理使用说明

    代理服务技术对于网站架构部署时非常重要的,一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术.常用的代理技术分为正向代理.反向代理和透明代理.以下就是针对这 ...

  9. 正向代理&反向代理 简(fu)明(za)解释

    最近写的东西越来越偏向Web程序员了··· 你想读懂本篇,就要知道什么是Web服务器——装在世界上某个机房里某台机器里某个操作系统里的一个,对外(公网或者你能访问)服务各种你需要的信息的软件! 它可以 ...

  10. 003. 什么是 正向代理 & 反向代理

    正向代理: 客户端的代理: 反向代理: 服务端的代理:

随机推荐

  1. C语言-apache mod(模块开发)-采用apxs开发实战(centos7.2 linux篇)

    C语言-apache mod(模块开发)-采用apxs开发实战(centos7.2 linux篇) 名词解释:apxs apxs is a tool for building and installi ...

  2. 如何在Mac OS中安装 wget

    首先从Apple Store下载Xcode,然后安装Xcode,接着安装Homebrew包管理,类似于Ubuntu下的apt-get: 终端下输入ruby -e "$(curl -fsSL ...

  3. 删除文件以后,如何通过git撤销删除的文件,不提交到远端代码库

    检查状态,看看发生了什么:$ git statusOn branch masterChanged but not updated:(use "git add/rm <file>. ...

  4. 【jQuery源码】html,text,val

    jQuery封装的方法html,text,val .html()用为读取和修改元素的HTML标签 .text()用来读取或修改元素的纯文本内容 .val()用来读取或修改表单元素的value值 一.h ...

  5. Android 开发工具类 22_PullPersonService

    PULL 解析 XML import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; imp ...

  6. svn合并分支到主干

    将分支pear_For2.3的最终版本合并到主干pear,操作步骤如下:1.选中主干pear右击-> Team -> 合并,弹出如下所示: 到此分支合并到主干已完成,若代码有冲突需找到冲突 ...

  7. 数据库学习---SQL基础(一)

     数据库学习---SQL基础(一) 数据库学习---SQL基础(二) 数据库学习---SQL基础(三) SQL(struct query language)结构化查询语言:一种专门与数据库通信的语言, ...

  8. 机器学习--降维算法:PCA主成分分析

    引言 当面对的数据被抽象为一组向量,那么有必要研究一些向量的数学性质.而这些数学性质将成为PCA的理论基础. 理论描述 向量运算即:内积.首先,定义两个维数相同的向量的内积为: (a1,a2,⋯,an ...

  9. 堆排序详解以及java实现

    前言 临近毕业,开始找工作,近期一直在看算法导论(CLRS)同时各种刷题.希望以后有时间把所有学习心得和刷题心得记录下来. 堆 堆排序和合并排序一样,是一种时间复杂度为O(nlgn)的算法,同时和插入 ...

  10. C/C++中的static

    一.静态全局变量 理解static关键字之前首先回顾一下C/C++程序的在内存中的分配情况.从低地址到高地址依次分为:代码区.全局数据区.堆区.栈区.函数之外的全局变量和静态变量(包括全局变量和静态变 ...