配置反向代理后,開(kāi)發(fā)反饋網(wǎng)頁(yè)502,手里辣條吃完,自己試了一把,竟然不行
看看配置文件,沒(méi)什么問(wèn)題
之前一直這么寫(xiě)的不科學(xué)呀,換百度試試,百度可以,測(cè)試代理的域名直接訪問(wèn)也正常
日志抬上來(lái),ssl失敗,那我不用https不就行了,proxy_pass 代理?yè)Q成http的后,果然可以訪問(wèn)!
繼續(xù)找問(wèn)題,日志中有看到將域名解析成ip。ssl在握手時(shí),默認(rèn)不發(fā)送主機(jī)名,以ip連接服務(wù)器,當(dāng)服務(wù)器上有多個(gè)虛擬主機(jī)使用同一個(gè)ip時(shí),默認(rèn)返回第一個(gè)可用證書(shū),這樣就導(dǎo)致證書(shū)無(wú)法匹配。出現(xiàn)ssl握手失敗
nginx有提供出現(xiàn)這種問(wèn)題(https的SNI)的解決方式,在配置中加入
proxy_ssl_server_name on;
reload后重新訪問(wèn),收工?。?!
SNI:解決同一ip,使用多個(gè)證書(shū)的情況,在ssl握手時(shí)插入host信息,使服務(wù)器能根據(jù)host找到正確的域名,并返回對(duì)應(yīng)的ssl證書(shū)。