我目前正在尝试使用Spring Boot和Zuul启动反向代理并运行。 HTTP部分已经开始工作了。但是,如果我尝试通过HTTPS请求网站,例如curl https://twitter.com
然后请求甚至无法达到我实现的逻辑。
处理在标准化URL的过程中停止,因为它看起来像这样:twitter.com:443
。相关代码段的注释没有用处。
// The URL must start with '/'
if (b[start] != (byte) '/') {
return false;
}
我没有太多配置就使用了所有东西,只是server.port:9999。我在这里遗漏了什么,或者为什么Tomcat不接受请求?
相关的Stacktrace:
org.apache.catalina.connector.CoyoteAdapter.normalize(CoyoteAdapter.java:1172)
org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:623)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
与此同时,我发现了差异。我想使用Zuul作为HTTP和HTTPS的代理。但是,命中服务器的请求与HTTP不同,但以下内容:
CONNECT twitter.com:443 HTTP/1.1
Host: twitter.com:443
User-Agent: curl/7.54.1
Proxy-Connection: Keep-Alive
甚至可以使用Spring Boot和Zuul构建HTTPS代理?