如何使用IIS代理iServer&iPortal

刘大

前言

在实际项目运行中,处于安全性保护等考虑,往往会对iServer,iPortal进行反向代理隐藏原始地址,帮助文档以及之前的博客中,主要是关于Nginx的,今天这篇主要给大家讲述下如何使用IIS代理iServer以及iPortal。

1.IIS使用http协议,iServer&iPortal使用http协议

具体操作

1.1 开启IIS管理器,并安装APR组件和url重写组件

下载APR组件[https://www.iis.net/downloads/microsoft/application-request-routing],安装后如图

APR组件

下载url重写组件[https://www.iis.net/downloads/microsoft/url-rewrite],安装后,在IIS里面随意点击一个网站,可看到

url 重写

####1.2 添加网站
物理路径可随意指定一个目录,端口可根据实际设定空闲未被占用的端口

创建网站

1.3 启用代理

进入设置界面
勾选

1.4 添加URL重写规则

这里以iPortal为例,选择第二步创建的网站,然后打开URL重写设置页面–在右侧点击“添加规则”,在弹出的窗口中选择创建“空白规则”

添加重写规则
入站规则编辑
点击应用,此时在浏览器访问localhost:8080,就已经能看到iPortal的首页了
image.png

1.4.1 设置保留原始主机标头

但是当我们进行登录时,会登录失败,F12查看会发现登录的tunnel接口的ip还是iPortal原有的ip,如图

登录失败

这是因为APR可以选择“是否保留原始主机标头”:preserveHostHeader。默认情况下,此选项为false。我们可以通过以下方式启用它,以管理员身份运行cmd命令行,输入:

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/proxy -preserveHostHeader:true /commit:apphost
1.4.2 修改注册表

运行后,即刻生效,这是我们再次访问登录,会发现ip更换过来了,但是依旧登录不成功,报400错误,如图

400错误

这是因为Windows的Http.sys服务的编码默认最多为每个Url长度限制在260个字符,而iPortal的tunnels请求长度超过,被截断导致不能正确响应,需要修改注册表,在[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters]
添加 “UrlSegmentMaxLength”=dword:00000400,将长度设置为1024,需重启计算机才可生效

增加UrlSegmentMaxLength

如果是使用IIS代理iServer,到这里就结束了,但是针对iPortal,我们还需要进行下面的步骤,因为在iPortal里面,我们会默认有个8195的代理端口,同样需要被代理出来。

1.5 iPortal的额外配置
1.5.1 增加新的入站规则

增加代理地址的入站规则.png

可调整下规则顺序

1.5.2 修改iportal.xml

打开【iPortal 安装目录】
/webapps/iportal/WEB-INF/iportal.xml 文件,修改节点,如下:

<serviceProxy>
<!-- 注册、托管的服务是否使用代理,默认值:true,开启服务代理功能 -->
<enable>true</enable>
<!-- 是否启用内置的代理服务,默认值:true ,使用 iPortal 内置代理,当您使用独立
进程代理时,需设置为 false -->
<enableBuiltinProxy>true</enableBuiltinProxy>
<port>8195</port>
<rootUrlPostfix><rootUrlPostfix>
<!-- 修改proxyServerRootUrl为下,8080对应代理端口,根据实际代理端口进行设置-->
<proxyServerRootUrl>http://{ProxyHost}:8080</proxyServerRootUrl>
<httpConnPoolInfo>
<maxTotal>100</maxTotal>
<defaultMaxPerRoute>10</defaultMaxPerRoute>
<connectionTimeout>30000</connectionTimeout>
<socketTimeout>30000</socketTimeout>
</httpConnPoolInfo>

修改后,需重启iPortal,至此,IIS代理iPortal就成功了。

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SuperMap iServer是一个数据科学服务,可以在Docker中进行部署。它的核心是SuperMap iObject Python,并集成了许多Python开源分析和机器学习库,如numpy、opencv、proj4和tensorflow等。用户可以在iServer平台上利用这些库解决数据分析问题。\[2\] 要配置和使用SuperMap iServer数据科学服务,首先需要满足一些系统配置要求,包括硬件要求。具体的配置步骤可以在官网技术资源中心找到,其中包括下载机器学习资源包并将其放置在指定目录下。该资源包提供了示例数据和示例模型供参考。\[1\]\[3\] 一旦完成配置,就可以开始使用机器学习服务。首先需要准备数据,然后可以使用SuperMap iServer提供的机器学习功能进行数据分析和处理。\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [SuperMap iServer 数据科学服务配置及使用](https://blog.csdn.net/supermapsupport/article/details/126248900)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [SuperMap iServer 机器学习服务配置及使用](https://blog.csdn.net/supermapsupport/article/details/126247664)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值