[英]Node.js socket hang up when agent is present
我有以下設置:客戶端=>代理服務器=>原始服務器
我分別將以下Node.js庫用於這些組件:isomorphic-fetch => http-proxy => http
這是兩個文件的設置要點,每個服務器一個,客戶端一個: https : //gist.github.com/headquarters/850cbb199ff397c6da56fb8d86113a7e要在本地運行此文件,請在一個shell和node fetch.js
運行node server.js
。在另一個shell中的node fetch.js
。
在服務器運行的情況下,如果我在瀏覽器中轉到http://localhost:8818
,則會得到示例響應{"a":"b"}
,因此可以正常工作。 如果我轉到http://localhost:9818
,我也會收到該響應,因此代理似乎工作正常。 但是,如果我運行包含HTTP代理的DEBUG=* node fetch.js
,請求將失敗(請參見https://gist.github.com/headquarters/850cbb199ff397c6da56fb8d86113a7e#file-failure-txt的輸出)。
如果沒有agent
屬性,則fetch命令在命令行上可以正常工作。 如何調試此套接字掛起錯誤?
事實證明,我沒有足夠仔細地閱讀https-proxy-agent文檔。 這行有點An HTTP(s) proxy http.Agent implementation for HTTPS
困惑: An HTTP(s) proxy http.Agent implementation for HTTPS
- PROXY本身可以是HTTP或HTTPS,但是對於這種代理代理而言,原始服務器必須是HTTPS。 對於HTTP原始服務器,我必須使用http-proxy-agent 。 因此,套接字掛起可能來自https.Agent嘗試訪問HTTP端點。 當我切換到http-proxy-agent時,它起作用了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.