ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

IIS实现HTTP和WebSocket服务的反向代理

2019-11-18 14:01:02  阅读:847  来源: 互联网

标签:WebSocket IIS Rewrite URL 代理 代理服务器 反向 HTTP


一.前言

首先我们来聊聊反向代理,所谓的反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

二.举例

以我遇到的情况为例,我有一个使用.net core开发的控制台应用程序项目,我想使用命令行或者服务来启动发布好的项目,使用二级域名来访问,但是问题来了无论我怎么操作都无法将域名跟我的项目绑定,只能绑定IP,我使用的是UseUrls的方法,也不知道是不是我的用法错了,反正只是作为一个讲解的例子,大家不用深究。这个时候我就想到了另一种方式,能不能在访问二级域名时跳转到项目绑定的IP端口上呢,而且我返回的结果还得通过二级域名发送出去,这时候我需要一个代理服务器来做这个事,这个代理就是IIS。

三.准备

Windows Server 2008 R2

IIS7

Application Request Routing(IIS插件需要另外安装,下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=47333

URL Rewrite(地址重定向,一般装IIS后都会有),如下图:

 

 

四.开始

第一步、确认IIS上有安装ARP(Application Request Routing)以及URL Rewrite

第二步、启动代理:

 

 

 

 

 

 

第三步、新增反向代理服务器,设置反向代理URL规则

选中IIS中的一个网站,然后点击URL重写模块。在右侧点击【添加规则】--【入站规则】 -- 【空白规则】

 

 

 

 

 

 

 

上图配置说明:

Name:随意填写

Requested URL:选择"Matches the pattern",匹配模式

Using:选择“Regular Expressions”,正则表达式匹配

Pattern:填写^(.*)

Action Type:选择Rewrite,重写

Rewrite URL:填写需要被代理的网站地址,最后加上{R:1}即可,如:http://localhost:5520/{R:1}

最后点击应用即可。到此为止便完成了HTTP的反向代理。有兴趣的朋友可以自己多尝试,不同端口之间的代理也是可以的。

五.WebSocket的反向代理

websocket的反向代理的方法与HTTP基本一致,就只是在上述的操作中再加一条规则就好了。注意一下,只有IIS8.0以上才支持websocket。

重新添加一条规则,名称啥的都跟上面一下我就不重复说了。不同的是下面两个配置:

Conditions添加两条规则,匹配模式分别是 (.+)s:// 和 (.*)s://

 

Rewrite URL改为:{C:1}://需要代理的项目地址/{R:1}

 

以上。

标签:WebSocket,IIS,Rewrite,URL,代理,代理服务器,反向,HTTP
来源: https://www.cnblogs.com/wcrBlog/p/11881656.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有