如何使用IIS代理iServeriPortal

刘大

这里写目录标题

  • 前言
    • 1.IIS使用http协议,iServer&iPortal使用http协议
      • 具体操作
        • 1.1 开启IIS管理器,并安装APR组件和url重写组件
        • 1.3 启用代理
        • 1.4 添加URL重写规则
          • 1.4.1 设置保留原始主机标头
          • 1.4.2 修改注册表
          • 1.5 iPortal的额外配置
            • 1.5.1 增加新的入站规则
            • 1.5.2 修改iportal.xml

前言

在实际项目运行中,处于安全性保护等考虑,往往会对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就成功了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/579326.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用防火墙是否可以应对DDoS攻击?

很多游戏行业公司对网络安全不够了解&#xff0c;觉得装个防火墙就可以万事大吉了。实际上使用防火墙确实是解决DDoS攻击问题的一种有效方法&#xff0c;一些更先进的防火墙还可以采用其他防御措施&#xff0c;例如:深度包检测、行为分析、人工智能等&#xff0c;来识别和防御各…

Vi文本编辑器如何使用,这里有详细步骤

Vi是一个强大的文本编辑器&#xff0c;包含在大多数Linux系统中&#xff0c;甚至是嵌入式系统中。有时&#xff0c;你必须在不包括更友好的文本编辑器的系统上编辑文本文件&#xff0c;因此了解Vi是至关重要的。 与Nano不同&#xff0c;Nano是一款易于使用的终端文本编辑器&am…

Shell 脚本应用(四)

正则表达式概述 正则表达式又称正规表达式&#xff0c;常规表达式。在代码中常简写为regex&#xff0c;regexp 或RE.正则表达式 是使用单个字符串来描述&#xff0c;匹配一系列符合某个句法规则的字符串&#xff0c;简单来说&#xff0c;是一种匹配字符串 的方法&#xff0c;通…

JVM入门到入土-Java虚拟机寄存器指令集与栈指令集

JVM入门到入土-Java虚拟机寄存器指令集与栈指令集 HotSpot虚拟机中的任何操作都需要入栈和出栈的步骤。 由于跨平台性的设计&#xff0c;Java的指令都是根据栈来设计的。不同平台CPU架构不同&#xff0c;所以不能设计为基于寄存器的。优点是跨平台&#xff0c;指令集小&#x…

PyCharm安装PyQt5一系列工具

目录 目录 一、安装IDE 二、安装Pycharm 三、Pycharm内安装一系列工具 1.新建一个项目 2.点击左上角File-Setting-点击加号 3.添加环境变量 4.配置qtdesigner,pyuic,pyrcc 三、用Pyinstaller打包成exe&#xff08;简单版&#xff09; 四、我的解释器装在了中文路径&a…

如何分析信号的频率信息?

1 简介 当信号的频率信息是已知的&#xff0c;或者近似已知的&#xff0c;则采样频率容易选择&#xff0c;选择最大采样频率的2倍以上(奈奎斯特采样)。 这里&#xff0c;将讨论信号频率未知的情况。尤其是&#xff0c;考虑如何避免混叠错误。 2 低通滤波(反混叠) 去除混叠错…

二、基于图像和结构化数据多模态融合的回归预测网络【框图讲解+源码】

整理读研期间做的项目与日常小实验 本篇未完待续…代码部分整理后补充 0. 背景 实验室有一些材料的SEM&#xff08;扫描电镜&#xff09;图像、也有对应的组分信息&#xff08;结构化数据&#xff0c;包含类别特征和连续的数值特征&#xff09;&#xff0c;以及对应的力学性能…

WEB 3D技术 three.js带着大家简单在文档上过一下集合体 并理解如何在文档中调试参数

前面讲了 自己创建集合体 顶点分组 但是这样其实挺麻烦的 three.js 其实已经给我们封装好了 官网直接搜索 geometry 这边这个立方体 应该算是我们用的最多的 这里 这个就是通过三个参数设置 它们分别对应 高度 宽度 厚度 拉下来 我们看到 其实他有六个参数 前面的 x y z三个…

有什么好用的C/C++源代码混淆工具?

​ 有什么好用的C/C源代码混淆工具&#xff1f; 开始使用ipaguard 前言 iOS加固保护是直接针对ios ipa二进制文件的保护技术&#xff0c;可以对iOS APP中的可执行文件进行深度混淆、加密。使用任何工具都无法逆向、破解还原源文件。对APP进行完整性保护&#xff0c;防止应用…

sqlmap各个命令的解释及其基本用法

各个命令的用法 -h,--help Show basic help message and exit(显示基本帮助消息并退出) -hh Show advanced help message and exit&#xff08;显示高级帮助信息并退出&#xff09; --version Show programs version number and exit&#xff08;显示程序的版本…

力扣刷题记录(18)LeetCode:474、518、377、322

目录 474. 一和零 518. 零钱兑换 II 377. 组合总和 Ⅳ 322. 零钱兑换 总结&#xff1a; 474. 一和零 这道题和前面的思路一样&#xff0c;就是需要将背包扩展到二维。 class Solution { public:int findMaxForm(vector<string>& strs, int m, int n) {vector&l…

C语言结构体内存对齐

文章目录 一、结构体内存对齐问题二、查看结构体成员起始位置三、设置内存对齐方式 一、结构体内存对齐问题 如下的info_s结构体类型&#xff0c;包含一个int型成员age, 一个char型成员gender, 一个int型成员id。 单从数据成员的大小进行分析&#xff0c;整个结构体的大小应为…

输入两个时间,判断时间是否为非工作日,并且是日期否为同一天。是的话返回true,否返回false

工作遇到这么一个逻辑&#xff0c;前端回传两个时间&#xff08;必须是两个那一种&#xff09;。然后&#xff0c;我后端需要判断这两个时间是否为同一天&#xff0c;并且这个时间是否为非工作日&#xff0c;是的话返回true&#xff0c;反之返回false 代码&#xff1a; packa…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Dialog对话框组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Dialog对话框组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Dialog对话框组件 对话框的使用场景也很高频&#xff0c;比如 APP 上架应…

共享和独享的区别是什么?有必要用独享IP吗?

通俗地讲&#xff0c;共享IP就像乘坐公共汽车一样&#xff0c;您可以到达目的地&#xff0c;但将与其他乘客共享旅程&#xff0c;座位很可能是没有的。独享IP就像坐出租车一样&#xff0c;您可以更快到达目的地&#xff0c;由于车上只有您一个人&#xff0c;座位是您一个人专用…

安卓开发转鸿蒙开发到底有多简单?学习鸿蒙开发有什么价值?

相信各位小伙伴们多多少少都了解过鸿蒙了&#xff0c;有些一知半解而有些已经开始学习起来。那这个鸿蒙到底好不好搞&#xff1f;要不要搞&#xff1f; 据了解安卓反正目前工作感觉不好找&#xff0c;即便是上海这样的大城市也难搞&#xff0c;人员挺饱和的。最近临近年关裁员…

浅谈locust 性能压测使用

1. 基本介绍 Locust是一个开源的负载测试工具&#xff0c;用于模拟大量用户并发访问一个系统或服务&#xff0c;以评估其性能和稳定性。编写语言为Python&#xff0c;可通过Python来自定义构建性能压测场景脚本。Locust支持分 布式负载测试&#xff0c;可以通过多个机器协同工…

张江智荟毁约offer

毕业8年后&#xff0c;找工作被国企歧视学历&#xff01;已经收到了offer&#xff0c;在入职前一周被通知要撤回offer&#xff0c;拒绝录用&#xff0c;理由居然是他们只要本科211以上的人 这是我今天&#xff08;2023-12-26&#xff09;亲身经历的事&#xff0c;听说过面试前…

【树莓派4b的uboot编译移植】

树莓派4b的uboot编译移植 引言 0.1、什么是uboot OS跑起来前&#xff0c;需要的一段引导程序负责部署整个计算机系统&#xff0c;引导操作系统内核启动并给内核传参提供一个命令行界面供人操作是一个开源项目&#xff0c;uboot就是universal bootloader&#xff08;通用的启…

词法语法语义分析程序设计及实现,包含出错提示和错误恢复

词法说明 (1)关键字 main, int, char, if, else, for, while, void (2)运算符 - * / < < > > ! (3)界符 ; ( ) { } (4)标识符 ID letter(letter|digit)* (5)整型常数 NUM digit digit* (6)空格 ‘ ‘ ‘\n’ ‘\r’ ‘\t’ 空格用来分隔ID,NUM,运算符,界…