使用java.net.Proxy连接到Nginx时,客户端将纯HTTP请求发送到HTTPS端口,同时读取客户端请求标头错误

时间:2019-04-11 12:58:39

标签: java nginx https proxy

我正在使用java.net.Proxy通过Nginx代理连接到我的服务器。 Nginx代理已启用SSL。我的服务器网址是https。

当我尝试下面的示例代码时,出现400错误:

  

客户端在读取客户端请求标头时向HTTPS端口发送了纯HTTP请求

这可能是因为我无法在代码“ https”中指定代理IP地址,所以Nginx代理认为它是一个http请求,并生成错误。

在禁用Nginx代理SSL或直接连接到服务器时,它可以正常工作。

这可以通过编程方式解决,还是只能通过配置Nginx代理将http请求重定向到https来解决?

String url = "https://myserver.com"; 
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("1.2.3.4", 444)); 
HttpURLConnection con = (HttpURLConnection) (new URL(url).openConnection(proxy)); 
con.connect();

0 个答案:

没有答案