• IIS反向代理和URL重写——实现https重定向,文件类型隐藏访问重写,nodejs等服务重写等等


    IIS反向代理和URL重写——实现https重定向,文件类型隐藏访问重写,nodejs等服务重写等等

     

    一、Why?

    1、先来讲一讲为什么我们要使用url重写这个东西

    2、因为我学习的后端是nodejs,然后我发现nodejs一个非常让人难受的事,就是它监听端口不是80和443时,你访问网页需要输入端口,这样很不友好,比如下面这样:

    3、这样对用户很不友好,所以我才打算学一学url重写,url重写后就会变成这样:

    4、当然上面的url中的3001也可以修改成其他字母或者多层路径,这样就会变得好看多了

    二、前置条件

      1、首先你得有个IIs服务器  ( ̄▽ ̄)/

    2、先去IIS官网下载web平台安装工具

    3、当然是安装这个工具了٩(๑❛ᴗ❛๑)۶

    4、打开这个工具

    5、搜索Application Request Routing Cache,或者 应用程序请求路由 ,因为有可能是英文也有可能是中午,所以当一个搜索不到时,搜索另一个语言,一定要在产品全部中搜索

    6、安装后可以一路点击接受安装即可

    7、接下来安装url重写工具,直接搜索url即可,,有可能出现 url 重写工具 或者 url rewrite 

    8、和上面安装请求路由一样,也可以和请求路由一起添加进去,一起安装

    9、安装完成,我们前置工作也就成功了

    三、应用程序请求路由设置

    1、打开IIS工具,选择上面安装的请求路由

    2、选择 Server Proxy Settings

    3、在中间区域,选择勾选Enable proxy,不用修改内容,当然也可以根据需求自己修改

    4、点击应用即可,完成请求路由的设置

    四、url重写设置:这边讲解参数,后面有三个写好的例子使用

    1、打开站点,选择需要url重写的站点

    2、当安装完成url重写时,会出现url重写这个工具,选择工具,名字也有可能是英文

    3、打开工具,选在右侧栏第一行添加规则,打开对话框,选择空白规则

    4、输入名称,随意,但是尽量能表示出重写目标的含义

    5、匹配url,请求的url(字面意思):与模式匹配(推荐),与模式不匹配;使用(匹配使用的方式):正则表达式(推荐),通配符,完全匹配;

    6、模式:比如说host代表主机域名,则在这里面写的就是host之后的正则匹配表达式,比如匹配在host/blog/,之下的都转到nodejs搭建的服务上,则这里填写^blog/(.*);点击测试模式,我们填写下面图片内容进行测试,发现测试结果中有个{R:1},我们需要将其导向至nodejs搭建的服务,也就是重写目标

    7、忽略大小写,自然就是字面意思,不多叙述

    8、下面便是条件,按照图片来进行填写,这里不具体细数条件类型和规则模式填写,后面有三个例子进行了基本讲述,其余的请查看官方文档

    9、服务器变量可以不写,操作类型可以因情况而定,http站点转向https时一般使用重定向,其余一般为重定向

    重写URL:比如博客是在nodejs搭建的服务上,并且监听本地3001端口时,填写http://127.0.0.1:3001/{R:1},这个{R:1}就是上面模式匹配的字符串,其实访问www.example.com/blog/index.html,就是相当于访问http://127.0.0.1:3001/index.html,这样监听本地3001,不用开方公网3001,可以减少服务器危险

    停止后续规则,自然就是字面意思,一旦勾选后,匹配处理结束,将不再处理下面的其他规则

    10、点击右侧栏应用即可,当应用显示灰色时,证明有必填项没有填写,所以无法应用,到这里也就重写完毕,下面是例子

    五、例子

    1、http重定向至https

    填写内容 ->

    名称:随意

    模式:(.*) ;代表全部,任意,无论是否字符都匹配

    条件:{HTTPS};https,模式^OFF$,代表https关闭,也就是没有;;;{HTTP_HOST}:填写要匹配的域名,不能其他的域名访问到也重定向至这个https,逻辑分组全部匹配,任意匹配是满足一个条件即可进行下面处理

    操作类型:重定向

    重定向URL:https://www.example.com/{R:1}

    结果相当于 访问 http://www.example.com/....... 重定向至 https://www.example.com/.......

    2、重写服务,一般使用为nodejs服务,这里不写条件,一般条件使用为上面的两种,这里为了截图方便,不予展示

    模式:^blog/(.*)

    类型:重写

    目标URL:http://127.0.0.1:3001/{R:1}

    结果:访问:http://www.example.com/blog/index.html  -->  http://127.0.0.1:3001/inde.html

    当然这个127.0.0.1指的是服务器的本地,而不是访问者电脑本地,这样使用,可以防止开发太多端口,引起安全问题

    3、重写服务-文件

    模式:(.*)phpf$:代表访问的文件以phpf结尾

    类型:重写

    目标URL:http://www.example.com/{R:1}.php

    结果:访问:http://www.example.com/dir/loginphpf  -->  http://www.example.com/dir/login.php

    这样当后端有其他语言或者不想在前端显示文件后缀时,可以使用这种方式来进行隐藏,phpf可以自己随意更改

    六、尾记

    1、本文记录目的只是为了防止遗忘

    2、当然url重写不可能这么简单的使用,我只是需求多少,研究多少,这里只是基本使用,想要更复杂的,则自己可以去官方文档查看,研究

    3、本博客可以随意转载,但是请在博文顶部写上来源:

    作者:SpiritLing 

    地址:https://www.cnblogs.com/spirit-ling/p/8809039.html

  • 相关阅读:
    洛谷P2522 [HAOI2011]Problem b(莫比乌斯反演)
    洛谷P3327 [SDOI2015]约数个数和(莫比乌斯反演)
    Informatica PowerCenter 常用转换组件一览表
    Informatica_(3)组件
    Informatica_(2)第一个例子
    Informatica_(1)安装
    InformaticaPowerCenter调用存储过程
    Informatica 9.5.1 安装配置
    Linux字符集的查看及修改
    Redis-3.2.9集群配置(redis cluster)
  • 原文地址:https://www.cnblogs.com/lydg/p/15334159.html
Copyright © 2020-2023  润新知