IIS8.5反向代理实现80端口访问多个.NetCore程序

这篇具有很好参考价值的文章主要介绍了IIS8.5反向代理实现80端口访问多个.NetCore程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景:

      目前仅有一台域名备案并开通80端口的服务器,而有多个部署在此服务器的.NetCore程序需要与微信进行独立的集成(同一个认证微信服务号),因此需要实现非80端口反向代理外网80端口,例如通过a.test.com和b.test.com即可访问当前服务器的8028和8029端口上部署的程序。

解决方案:

      由于程序是部署在Windows服务器的IIs8.5版本,开发环境为.NetCore2.1,因此考虑使用IIS进行反向代理,步骤如下:

(1)在服务器IIS网站中新建一个站点,端口设置为80,系统会自动在站点目录下生成web.config文件

(2)安装IIS插件两款:

ARR:https://www.iis.net/downloads/microsoft/application-request-routing?k26099222  ,用于反向代理

URL-ReWriter:https://www.iis.net/downloads/microsoft/url-rewrite  ,用于重写Url,实现二级域名反向代理

如果安装后找不到application request routing,可按下列步骤重新安装

IIS8.5安装ARR

1. 关闭相关服务

        net stop was /y

        net stop wmsvc /y   (可能没有)

2. 手动安装ARR的依赖项

        a) Web Farm Framework module version 1.1

        b) External cache module version 1.0

        c) URL Rewrite module version 2.0

3. 安装ARR.version 3.0

4.启动之前关闭的服务

        net start was

        net start wmsvc

5.安装成功

相关依赖下载链接:

ARR3.0下载 IIS7 ARR(Application Request Router)反向代理路由 3.0 安装包(附教程) 64位 下载-脚本之家 (jb51.net)

iis反向代理,microsoft,服务器,运维


 

安装后可在IIS中看到:

iis反向代理,microsoft,服务器,运维

 iis反向代理,microsoft,服务器,运维

 

(3)对ARR进行设置,启用反向代理:

iis反向代理,microsoft,服务器,运维

 iis反向代理,microsoft,服务器,运维

 (4)选中80站点,进入Url Rewrite配置,在右侧点击“添加规则”

iis反向代理,microsoft,服务器,运维

iis反向代理,microsoft,服务器,运维

 (5)确定后,可以看到新增了入站规则和出站规则:

iis反向代理,microsoft,服务器,运维

(6)如上图箭头所示,还需增加服务器变量,以处理Url重写带来的一些请求头问题: 

如HTTP_ACCEPT_ENCODING就是解决重写Url后转发时Gzip压缩带来的问题。

iis反向代理,microsoft,服务器,运维

 (6)注意,反向代理涉及到较多HTTP协议规则,有时会由于目标站点的设置导致500失败,往往是需要通过增加专门的规则来解决,例如增加特殊的Http头或设置,具体要看发生的错误。开启IIS完整错误提示,以便更好的了解原因:

iis反向代理,microsoft,服务器,运维

 iis反向代理,microsoft,服务器,运维

 

(7)找到80站点目录下的web.config文件,编辑

<rewrite>
  <outboundRules>
    <rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1" stopProcessing="false">
      <match filterByTags="A, Form, Img" pattern="^http(s)?://weixin.XXX:8028/(.*)" />
      <action type="Rewrite" value="http{R:1}://weixin.XXX.cn/{R:2}" />
    </rule>
    <preConditions>
      <preCondition name="ResponseIsHtml1">
        <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
      </preCondition>
    </preConditions>
  </outboundRules>
  <rules>
    <rule name="ReverseProxyInboundRule1" stopProcessing="true">
      <serverVariables>
        <set name="HTTP_ACCEPT_ENCODING" value="" />
      </serverVariables>
      <match url="(.*)" />
      <action type="Rewrite" url="http://weixin.XXX.cn:8028/{R:1}" />
    </rule>
  </rules>
</rewrite>
<urlCompression dynamicCompressionBeforeCache="false" />

其中rewrite、rules等规则是在完成IIS配置后自动增加的,serverVariables、urlCompression节需要我们手工在web.config中增加进去,注意位置。文章来源地址https://www.toymoban.com/news/detail-686914.html

(8)保存后,访问weixin.XXX.cn即可访问到8028端口站点,实现无端口体验

(9)8028端口站点与微信进行集成,亲测授权API和JSAPI有效。

到了这里,关于IIS8.5反向代理实现80端口访问多个.NetCore程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 实战指南:使用 Nginx 反向代理实现多端口跳转

    实战指南:使用 Nginx 反向代理实现多端口跳转

    在现代 Web 开发中,Nginx作为一款高性能的开源反向代理服务器,提供了强大的功能来管理网络流量和路由。本文将介绍如何利用 Nginx 的反向代理功能,将不同路径的请求转发到不同端口的 Tomcat 服务上,以实现多端口跳转的效果。 使用 Nginx 的强大反向代理功能,我们能够根

    2024年02月19日
    浏览(14)
  • IIS的反向代理

    IIS的反向代理

    关于IIS的代理功能,网上虽然有很多文章,但是能够真正将IIS代理功能解释清楚的并不多。今天我们就一同探究一下IIS的代理功能。建议IIS版本至少为7.0(操作系统Windows Server 2008),IIS6就暂不考虑了吧。 代理分为正向代理、反向代理。 正向代理一般用于隐藏访问者真实信息

    2024年02月09日
    浏览(10)
  • 通过SSH实现将本地端口反向代理到公网服务器

    有一台公网服务器,能够对外开放服务进行访问,但是这个公网服务器资源较低,无法运行太多服务 有一台闲置电脑可以全天候开机使用,且配置较好,可以部署多个服务,但是没有公网IP 需求:将本地的服务反向代理到公网服务器,以实现通过公网服务器访问内网资源 必

    2024年02月15日
    浏览(21)
  • IIS 8.0 设置反向代理教程

    IIS 8.0 设置反向代理教程

    一、环境准备: ​ 1、Windows Server 2012 R2。 ​ 2、IIS(Internet Information Server) 8.0。 ​ 3、ARR(Application Request Router) 3.0。 ​ 4、URL Rewrite(URL重写工具) 2.0。 ​ 5、Web Platform Installer(Web平台安装程序)(如IIS或系统内找不到的情况下)。 ​ 6、一个可以外网访问的域名。 二、说明: ​ 一般

    2024年02月04日
    浏览(10)
  • 群晖NAS无端口域名远程访问,ipv4、ipv6均可,开启https,需要云服务器+frp(内网穿透)+宝塔(反向代理)

    群晖NAS无端口域名远程访问,ipv4、ipv6均可,开启https,需要云服务器+frp(内网穿透)+宝塔(反向代理)

     作者:陌路遥 其实这篇文章算不上教程,顶多算是经验总结。因为作者也是小白,也是在不断学习,本文所呈现的方法可能较为繁琐,并不是较为简洁的那种,只给大家做一个参考。大佬勿喷,保命。 其实群晖常用的外网远程访问,除了QC之外,就是ipv6+ddns动态域名解析,

    2024年02月09日
    浏览(14)
  • nginx反向代理实现不同域名映射到同一台服务器的相同端口

    在实际应用中,我们经常会遇到多个域名需要映射到同一台服务器的相同端口的情况,这时可以使用nginx反向代理来实现。 以实现将www.example.com和www.test.com都映射到127.0.0.1的80端口为例,具体步骤如下: 修改hosts文件 在本地hosts文件中添加以下两行: 配置nginx反向代理 在ngi

    2024年02月14日
    浏览(15)
  • 如何通过nginx反向代理实现不同域名映射到同一台服务器的相同端口

    要在Nginx中实现不同域名映射到同一台服务器的相同端口,您可以使用Nginx的代理转发技术。 首先,您需要了解Nginx的代理转发工作原理。Nginx的代理转发是指在代理服务器(proxy server)收到一个请求时,先将请求转发给目标服务器(target server),然后将服务器的响应返回给代

    2024年02月13日
    浏览(15)
  • IIS配置反向代理URL rewrite.dll加载失败

    2022年10月9日17:58:33更新: 不要尝试了,以下方法只能转发静态资源,不能转发接口数据。 Windows Server 2012R2 + IIS8.5 + URL Rewrite2.1 安装URL ReWrite后,出现503报错, 事件查看器中显示: 模块 DLL C:Windowssystem32inetsrvrewrite.dll 未能加载。返回的数据为错误信息。 1、双击URLRewrite.ms

    2024年02月06日
    浏览(9)
  • nginx部署以及反向代理多域名实现HTTPS访问

    nginx部署以及反向代理多域名实现HTTPS访问

    直接进入/opt/nginx_main/nginx-info里面创建了 选择域名 然后配置免费ssl证书 证书设置我们需要的域名 然后申请之后稍等一段时间 之后点击下载,下载nginx的证书文件 一个pem,一个key 然后把下载的证书放到上面的 ssl路径 记录好位置即可,步骤 2.5会用到 1.先进入阿里云的数字证

    2024年02月12日
    浏览(17)
  • IIS8 安装 .net1.1

    IIS8 安装 .net1.1

    直接上正文; 安装顺序:每一步都要重启! 1 dotnetfx.exe 2 NDP1.1sp1-KB867460-X86 3 NDP1.1sp1-KB886903-X86 .NET_Framework_Cleanup_Tool.zip(这个是卸载.net framework的软件,后面可能会用) 链接:https://pan.baidu.com/s/1ZfeZrWY-y_-UKbDkjJPPlA?pwd=a90p  提取码:a90p  效果: 那么就需要使用.NET_Framework_Cleanu

    2024年02月16日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包