IIS的url-rewrite配置预压缩
发布日期:2021-06-29 14:39:40
浏览次数:2
分类:技术文章
本文共 2581 字,大约阅读时间需要 8 分钟。
参考:https://stackoverflow.com/questions/45199213/angulars-pre-gzipped-files-are-not-served-via-iis
参考:https://stackoverflow.com/questions/40884212/serve-bundle-js-gz-file-on-iis 参考:https://gist.github.com/suhrab/552af7b3383706081fbe51c102c290d7 参考:https://www.iis.net/downloads/microsoft/url-rewrite (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)Url-Rewrite是什么?
url-rewrite是网页服务器的一项功能:
- 入站规则:可以用于重写访问的url路径,可以把符合条件的请求的url路径路由到另一个url路径上去。
- 出站规则:可以根据一些条件,如消息的类型,修改返回消息的类型等内容。 下面是官方的一段解释: IIS URL Rewrite 2.1 enables Web administrators to create powerful rules to implement URLs that are easier for users to remember and easier for search engines to find. By using rule templates, rewrite maps, .NET providers, and other functionality integrated into IIS Manager, Web administrators can easily set up rules to define URL rewriting behavior based on HTTP headers, HTTP response or request headers, IIS server variables, and even complex programmatic rules. In addition, Web administrators can perform redirects, send custom responses, or stop HTTP requests based on the logic expressed in the rewrite rules.
Url-Rewrite的安装
url-rewrite缺省是没有安装到IIS服务器上的,使用前,我们需要把它下载安装到电脑上。
可以在这个官方的下载路径上下载一个版本进行安装: https://www.iis.net/downloads/microsoft/url-rewriteUrl-Rewrite配置预压缩
不同于nginx,IIS是没有支持静态预压缩的。
这里的静态预压缩指:把web服务器上的html/js等资源,使用gzip预先生成一份压缩数据,当请求过来的时候,优先返回这些gzip压缩的文件,这样可以显著的减少传输的数据量,提高传输效率。实现策略
为了让IIS能够返回gzip压缩的文件,我们可以考虑使用url-rewrite功能。
1. 在请求入站时把请求的文件,添加gz压缩包后缀。目的是:让fetch文件时,直接把.gz的压缩文件对外返回。 2. 在出站时,需要把content-encoding置位gzip,另外也需要把content-type置位 application/octet-stream。置位这些的目的是:如果不修改标识,直接返回gzip文件,浏览器会认为客户请求的就是gzip文件,是要下载gzip文件;而修改标识后,浏览器会识别出这是请求文件的gzip压缩文件,使用前需要解压,浏览器会对它进行解压并传给网页程序进行使用。配置样例
配置样例参考stackoverflow上的答复:
https://stackoverflow.com/questions/45199213/angulars-pre-gzipped-files-are-not-served-via-iis在网站跟目录的的web.config文件中修改:
入站配置:识别js后缀的添加.gz后缀出站配置:.gz后缀的content-encoding修改为gzip
经过上面的配置,就可以实现js文件的预压缩支持。
缺点分析
使用该种策略,一定程度可以在IIS上实现支持预压缩文件,不过毕竟不像nginx的支持,该种变通实现是有一定的副作用的,如果使用的话注意规避该副作用。
- 修改后不再找原路径:入站规则直接修改了请求的url,意为着,如果修改后的url路径文件不存在,就会返回404。如果请求不到.gz压缩文件,是不会找原不带.gz的请求文件的。
- gz后置被标识为encoding-type为gzip,浏览器收到后会进行解压,这对原来就请求下载gz文件的情况,进行了干扰。请求下载的gz文件,浏览器先解压了,理论上保存就是解压后的文件了。
(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)
转载地址:https://chunyexiyu.blog.csdn.net/article/details/100569200 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月14日 15时43分42秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
写论文,这个神器不能少!
2019-04-29
我在哥大读博的五年,万字总结
2019-04-29
本科、硕士、博士,究竟有何区别?
2019-04-29
如果我的实验室也这样布置,那多好。
2019-04-29
现在做硬件工程师还有前途吗?
2019-04-29
用 50 种编程语言写“Hello,World!”
2019-04-29
GD32替换STM32,这些细节一定要知道。
2019-04-29
华为员工离职心声:菊厂15年退休,感恩,让我实现了财务自由!
2019-04-29
春晚上的“拓荒牛”
2019-04-29
嵌入式驱动自学者的亲身感受,有什么建议?
2019-04-29
华为被超越!这家公司成中国最大智能手机制造商,不是小米!
2019-04-29
腾讯机器狗,站起来了!
2019-04-29
我用自己创造的深度学习框架进入腾讯,爽!
2019-04-29
芯片为什么持续缺货?
2019-04-29
又涨了?2021 年 3 月程序员工资统计新出炉
2019-04-29
初入行的C++程序员,如何快速摆脱CRUD阶段?
2019-04-29
研究生跟了一个很棒的导师是种怎样的体验?
2019-04-29
学会扶墙的机器人:没有什么能让我倒下!
2019-04-29
美国无人机在火星首飞成功,创造历史,3米飞行高度悬停30秒
2019-04-29
单片机的几种数字滤波算法
2019-04-29