网站建设服务器
今天开发反馈在测试金山云设备时遇到了这样一个现象:
wget https://funchlscdn . le change . cn/LCLR/2k 02135 pak 01979/0/0/2017 07 26085033/dev _ 2017 07 26085033 _ lpxh 73 ezzb 92 xx A8 . m3u 8
-2017-07-2611:49:26-https://funchlscdn . le change . cn/LCLR/2k 02135 pak 01979/0/0/20170726085033/dev _ 20170726085033 _ lpxh 73 ezzb 92 xx A8 . m3 u 8
Resolvingfunchlscdn.lechange.cn.120.92.158.134
connectingfunchlscdn . le change . cn | 120 . 92 . 158 . 134 |:443.已连接。
OpenSSL:错误:140770 fc:SSL路由:SSL 23 _ GET _ SERVER _ HELLO:unknown protocol
无法建立连接。
“错误:140770 fc:SSL routines:SSL 23 _ get _ server _ hello:unknown protocol”错误是在向只提供http的服务发送https请求时导致的。
# ping funchlscdn.lechange.cn,获取了这个域名对应的IP后,回到金山云的控制台,发现这个IP是一个负载均衡。但是,当这个负载平衡被配置时,它是端口80的http协议和端口443的http协议,所以我把它改为https。重新测试后,发现错误变成了这样:
[root @ js-develop ~]# wget https://funchlscdn . le change . cn/LCLR/2k 02135 pak 01979/0/0/0/2017 07 26085033/dev _ 2017 07 26085033 _ lpxh 73 ezzb 92 xx a 8 . m3 u 8
-2017-07-2616:08:15-https://funchlscdn . le change . cn/LCLR/2k 02135 pak 01979/0/0/20170726085033/dev _ 20170726085033 _ lpxh 73 ezzb 92 xx A8 . m3 u 8
Resolvingfunchlscdn.lechange.cn.120.92.158.134
connectingfunchlscdn . le change . cn | 120 . 92 . 158 . 134 |:443.已连接。
HTTPrequestsent,awaitingresponse.502 bad网关
2017-07-2616:08:15错误502:错误网关。
在浏览器中打开的效果如图:
502错误网关
代理服务器从上游服务器收到无效响应。
_____
祥云ELB 1.0.0
同时发现金山云负载均衡中nginx的8000健康检查“异常”。但是,可以使用http访问,效果如下:
[root @ js-develop ~]# wget http://funchlscdn . le change . cn/LCLR/2k 02135 pak 01979/0/0/0/2017 07 26085033/dev _ 2017 07 26085033 _ lpxh 73 ezzb 92 xx a 8 . m3 u 8
-2017-07-2615:31:55-http://funchlscdn . le change . cn/LCLR/2k 02135 pak 01979/0/0/20170726085033/dev _ 20170726085033 _ lpxh 73 ezzb 92 xx A8 . m3 u 8
Resolvingfunchlscdn.lechange.cn.120.92.158.134
connectingfunchlscdn . le change . cn | 120 . 92 . 158 . 134 |:80.已连接。
HTTPrequestsent,awaitingresponse.302找到
地点:http://120 . 92 . 133 . 76:8090/LCLR/2k 02135 pak 01979/0/0/20170726085033/dev _ 20170726085033 _ lpxh 73 ezzb 92 xx a 8 . m3 u 8[以下]
-2017-07-2615:31:55-http://120 . 92 . 133 . 76:8090/LCLR/2k 02135 pak 01979/0/0/20170726085033/dev _ 20170726085033 _ lpxh 73 ezzb 92 xx A8 . m3 u8
连接120.92.133.76:8090.已连接。
HTTPrequestsent,awaitingresponse.200OK
长度:66[应用程序/x-mpegURL]
saving to:" dev _ 2017 07 26085033 _ lpxh 73 ezzb 92 xx A8 . m3 u 8 "
100%[========================================================================================================================================================]66 - .-K/sin0s
2017-07-2615:31:55(3.02 MB/s)-" dev _ 20170726085033 _ lpxh 73 ezzb 92 xxa 8 . m3 u 8 "已保存[66/66]
于是打电话给开发者询问http和https的详细流程。开发者表示,在http中,设计路线如下:
Http(80)-开发模块(9001)
在https中,设计路线如下:
Https(443)-nginx(8000)-开发模块(9001)
这时候才发现问题。最早的时候,金山云没有配置https证书,所以开发者利用nginx的8000端口来监控ssl,达到https证书的效果。但是当金山云控制台添加了https证书后,nginx就不再需要配置SSL证书了。去https监控8000是不对的,所以负载均衡改成了:
Https(443)-开发模块(9001)
同时nginx关闭。这时候再测试https请求,就成功了!
其实如果非要用nginx的ssl证书,那么套路就是:打开nginx,但是在负载均衡中使用tcp协议监听nginx的8000端口,达到同样的效果。
最后,如果你觉得这篇文章对你升职加薪有帮助,欢迎随时通过刷下方二维码赞助我继续写更多博文!
更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码代理官网:www.chenqinet.cn。