反向代理 - HAProxy的

在你想有一个用户友好的URL的情况下,不同的公共端口,或者终止SSL连接他们到达詹金斯之前,你可能会发现运行詹金斯(或詹金斯运行servlet容器)的后面HAProxy的。必威国际有限公司本节讨论一些这样做的方法的。

普通HTTP

使用HAProxy的1.7.9,这里有一个例子HAProxy.cfg到代理通过纯HTTP:

#如果你已经有一个haproxy.cfg文件,你可以保留# global和defaults部分,但是你可能需要增加# timeout,这样长时间运行的CLI命令才能工作。4096年全球maxconn日志127.0.0.1 local0调试违约记录全球选择httplog选项dontlognull选项forwardfor maxconn 20超时连接5 s超时60年代60年代客户机超时服务器前端http绑定*:80模式http acl prefixed-with-jenkins path_beg / jenkins / acl host-is-jenkins-example hdr(主机)情商jenkins.example.com use_backe必威国际有限公司nd詹金斯如果host-is-j必威国际有限公司enkins-example prefixed-with-jenkins端詹金斯服务器jenkins1 127.0.0.1:8080 http reqrep模式  ^([^\ :]*)\ /(.*) \ 1 \ \ 2 acl response-is-redirect res.hdr(位置)- m发现#必须将下面两行合并到一行的HAProxy rspirep ^位置:\ (http | https): / / 127.0.0.1:8080 / jenkins /(. *)位置:\/ / j必威国际有限公司enkins.example.com/jenkins/ \ \ 1:如果response-is-redirect 2

这假设Jenkins在本地必威国际有限公司端口8080上运行。

这是假设您正在使用无论是从HAProxy的暴露的部位/詹金斯/上下文路径和必威国际有限公司詹金斯本身。如果不是这种情况,则需要调整配置。

如果你当试图在詹金斯运行长CLI命令,并詹金斯在后面跟着跑HAProxy的遇到了以下错误,它可能是由于HAProxy的超时的CLI连接。必威国际有限公司您可以增加超时客户端超时服务器设置必要因此命令将成功完成。

警告:空hudson.cli.DiagnosedStreamCorruptionException回读:为0x00为0x00为0x00 0x07的0X1E '开始反向代理测试#68' 0×00 0×00 0×00 0×01 0×07 0X0A预读:诊断问题:java.io.IOException异常:早产儿在EOF sun.net。www.http.ChunkedInputStream.readAheadBlocking(ChunkedInputStream.java:565) ... at hudson.cli.FlightRecorderInputStream.analyzeCrash(FlightRecorderInputStream.java:82) at hudson.cli.PlainCLIProtocol$EitherSide$Reader.run(PlainCLIProtocol.java:153) Caused by: java.io.IOException: Premature EOF at sun.net.www.http.ChunkedInputStream.readAheadBlocking(ChunkedInputStream.java:565) ... at java.io.DataInputStream.readInt(DataInputStream.java:387) at hudson.cli.PlainCLIProtocol$EitherSide$Reader.run(PlainCLIProtocol.java:111)

使用SSL

使用HAProxy 1.7.9,这里有一个例子HAProxy.cfg连接到代理使用SSL,终止SSL连接,然后使用普通的HTTP与Jenkins对话:必威国际有限公司

#如果你已经有一个haproxy.cfg文件,你可以保留# global和defaults部分,但是你可能需要增加# timeout,这样长时间运行的CLI命令才能工作。全球MAXCONN 4096日志127.0.0.1 LOCAL0调试日志的默认全局选项HTTPLOG forwardfor MAXCONN 20超时连接超时5秒5分钟的客户端超时服务器选项dontlognull选项5分钟的前端HTTP-在绑定*:80 *绑定:443 SSL CRT在/ usr / local / etc中/HAProxy的/ SSL / server.pem模式HTTP重定向方案HTTPS如果!{ssl_fc}#将HTTP请求重定向到https use_backend詹金斯如果{path_beg /詹金斯/}后端詹金斯服务器jenki必威国际有限公司ns1 127.0.0.1:8080模式HTTP http请求集合头X-Forwarded端口%[dst_port] http请求的附加报头X  - 转发,原HTTPS如果{ssl_fc} reqrep ^([^ \:] *)\ /(.*)\ 1 \ / \ 2 ACL响应是\(HTTP)://127.0.0.1:-redirect res.hdr(位置)-m FOUND#必须按两行成一条线的HAProxy的rspirep ^位置结合8080 /(。*)位置:\ HTTPS://必威国际有限公司jenkins.example.com:443/\2如果响应是重定向


此页面有用吗?

请通过此提交有关此页的反馈快速表单

或者,如果您不希望完成快速表单,您可以简单地指出,如果您觉得这个页面有帮助?


看到现有的反馈在这里