【发布时间】:2018-01-21 19:20:26
【问题描述】:
有没有办法将 JNLP 从端点与 ELB 集成?
每当我将 ELB 端点与侦听器端口 50000 连接到 EC2 实例 50000 时,我都会得到:
INFO: Connecting to app.ap-southeast-2.elb.amazonaws.com:50000
Aug 11, 2017 9:05:54 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Trying protocol: JNLP-connect
Aug 11, 2017 9:05:54 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Protocol JNLP-connect encountered an unexpected exception
java.util.concurrent.ExecutionException: org.jenkinsci.remoting.protocol.impl.ConnectionRefusalException: Server didn't accept the handshake: HTTP/1.1 400 BAD_REQUEST
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at hudson.remoting.Engine.innerRun(Engine.java:385)
at hudson.remoting.Engine.run(Engine.java:287)
Caused by: org.jenkinsci.remoting.protocol.impl.ConnectionRefusalException: Server didn't accept the handshake: HTTP/1.1 400 BAD_REQUEST
at org.jenkinsci.remoting.engine.JnlpProtocol1Handler.sendHandshake(JnlpProtocol1Handler.java:121)
at org.jenkinsci.remoting.engine.LegacyJnlpProtocolHandler$2.call(LegacyJnlpProtocolHandler.java:162)
at org.jenkinsci.remoting.engine.LegacyJnlpProtocolHandler$2.call(LegacyJnlpProtocolHandler.java:158)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at hudson.remoting.Engine$1$1.run(Engine.java:94)
at java.lang.Thread.run(Thread.java:748)
Aug 11, 2017 9:05:54 AM hudson.remoting.jnlp.Main$CuiListener error
SEVERE: The server rejected the connection: None of the protocols were accepted
java.lang.Exception: The server rejected the connection: None of the protocols were accepted
at hudson.remoting.Engine.onConnectionRejected(Engine.java:484)
at hudson.remoting.Engine.innerRun(Engine.java:448)
at hudson.remoting.Engine.run(Engine.java:287)
但是,当我将 JNLP 端点 URL 直接更改为 EC2 实例时,它可以正常工作,没有任何错误。
似乎 ELB 正在做一些 Jenkins 大师不接受的翻译。
有没有人通过 ELB 让 JNLP 连接从 Jenkins 从站工作到主站?
谢谢,
【问题讨论】:
-
听起来你的ELB监听器处于HTTP模式,需要处于TCP模式。
-
@Michael-sqlbot 你是对的。请添加为答案:)
标签: amazon-web-services jenkins amazon-ec2 amazon-elb