支持http(s)、signalr、websocket rewrite 的URL转发规则分享

简介分享几行通用Web URL转发规则代码,可用于http 、https 、signalr 以及 websocket(ws) 等协议的转发。

熟悉SignalR的开发者都知道,SignalR为Web应用的前后端交互提供了强大易用的支持,而且提供了可靠的通信能力,它兼容大部分开发语言,包括.NET、Java、Python、PHP、 等等。

SignalR支持WebSocket(套字节)、Polling(轮询)、Keepalive(长连接) 三种通信机制,它可以根据平台或浏览器的兼容情况,自动选择通信模式,其中WebSocket是最为推荐也是效率最好的模式。

当我们配置URL转发规则时,如果没有支持WebSocket的转发,SignalR就会自动选择其它通信模式,导致效率和性能下降, 对于直接支持WebSocket通信的项目,会直接中断连接。

针对http 和 https的协议转发规则很轻松的可以在各种技术网站找到,但是针对WebSocket 的规则就比较少了,所以分享下支持WebSocket的URL Rewrite规则。

以下规则,适用于IIS网站部署

<configuration>
  <location>
    <system.webServer>
	<rewrite>
	   <rules>
		<rule name="rewrite" stopProcessing="true">
		    <match url="^(.*)" />
		    <conditions>
			<add input="{CACHE_URL}" pattern="(.*)://" />
		    </conditions>
		    <action type="Rewrite" url="{C:1}://521.org.cn/{R:1}" logRewrittenUrl="true" />
		</rule>
	    </rules>
      </rewrite>
    </system.webServer>
  </location>
</configuration>

匹配规则可以根据需求自行修改。

本站发布的文章受知识共享协议保护,转载、收录请标明出处。

评论


昵称:   邮箱:

Top
An error has occurred. This application may no longer respond until reloaded.Reload 🗙