IIS服务器 如何配置 Websocket URL 重写?

IIS服务器配置 Websocket 的URL重写,一直不成功,请问各位大佬有没有详细的博客(我看的这篇博客 https://www.cnblogs.com/wcrBl... 一直不成功);

或者有没有触发url重写的log文件记录了错误信息的,谢谢回复!

阅读 3.9k
1 个回答

这个问题的解决如下:

(1)保证 IIS 服务器支持WebSocket功能以及enable是否为true:

参考详细的官网文档,逐步排查(第一个就足够了):
    https://docs.microsoft.com/en-us/iis/configuration/system.webserver/websocket
    https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-8/iis-80-websocket-protocol-support

(2)正确设置 URL重写 的规则:

之前问题中的博客我感觉是有问题的,配置规则还是比较麻烦的(没深入理解),我是参考下边博客成功的:
    https://blog.csdn.net/sinolover/article/details/111203521

(3)查看 IIS 的log日志:

如果上述两步就可以了,那就不用看下边的了,这里是对于查看IIS log日志的补充(本人第一次接触这):
    https://blog.csdn.net/sinolover/article/details/111203521

(4)IIS 版本对于 请求头 解析错误问题的解决:

我是先在上述步骤后发现:可以建立websocket连接(返回 101),但是立马就断开了(错误代码 1006,reason:空),查看 IIS 的log日志发现输出 "502"的错误。

然后就是参考如下两个博客解决的:
    https://stackoverflow.com/questions/34316825/websockets-reverse-proxy-in-iis-8
    https://serverfault.com/questions/1037407/websocket-based-website-behind-a-reverse-proxy-in-iis

大致就是说:1)需要在IIS中设置 "URL重写" 的地方,先增加 "HTTP_SEC_WEBSOCKET_EXTENSIONS"到"服务器变量"
2)然后配置"服务器变量"的规则:<serverVariables><set name="HTTP_SEC_WEBSOCKET_EXTENSIONS" value="" /></serverVariables>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进