我有一个 Jenkins 安装,可以通过 访问,localhost:8080
或者通过 网站从外部访问IPaddress:8080
。
我希望使用类似的方法来访问网站,并让 IIS 知道在通过这种方式访问时IPaddress/jenkins
如何重定向到内部。localhost:8080
这是我的 web.config 文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(jenkins.*)" />
<action type="Rewrite" url="http://localhost:8080/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
不幸的是,访问后IPaddress/jenkins
我收到 404 错误。
答案1
一些东西:
- 我不确定这是否适用于服务器,但对于反向代理功能,URL Rewrite 需要安装 ARR。
- 如果已完成,请确保已启用反向代理。
如果步骤 2 已完成:重写规则当前将重写
http://ip/jenkins/mypage.jsp
为http://ip:8080/jenkins/mypage.jsp
。如果意图是重写http://ip/jenkins/mypage.jsp
为,http://ip:8080/mypage.jsp
那么我建议匹配 URL 更像以下内容:^jenkins(\/.*)?$
笔记如果适用#3,那么在这种情况下您可能还需要一个出站规则来修复a,img,script元素。
答案2
也许有人需要这个答案。它对我有帮助。
不过,在将注意力转向 IIS 之前,我们需要告诉 Jenkins 我们的前缀(子目录)。为此,请打开
C:\Program Files (x86)\Jenkins\jenkins.xml
并添加--prefix=/jenkins
到条目中。
答案3
您应该看看安装 IIS 重写模块https://www.iis.net/downloads/microsoft/url-rewrite 这是为了接受您想要在处理之前修改的入站 URL。例如,如果您需要重定向到不同的服务器、页面或端口。
如果您无法修改 web.config(或者您不想修改,例如,当它来自第三方供应商时),则使用 UI 很有用
答案4
看这里:https://blog.dangl.me/archive/installing-and-configuring-jenkins-on-windows-server-with-iis/ (与您最相关的是本文的以下部分:设置 IIS 反向代理以从外部访问 Jenkins)