ჯერ განასხვავეთ წარუმატებელი handshake და კავშირი, რომელიც იხსნება და შემდეგ იხურება. ამ ორ სიმპტომს სხვადასხვა შემოწმება სჭირდება.
მიაღებინეთ აპლიკაციას upgrade მოთხოვნა
ცალკე WebSocket მარშრუტისთვის ეს server-ში მოათავსეთ:
location /socket/ {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
backend-ისკენ აშკარად HTTP/1.1-ს იყენებს. კლიენტის მიერ მოთხოვნილ პროტოკოლის ცვლილებას გადასცემს. backend-ს ეუბნება, რომ ეს კავშირი ასეთ ცვლილებას ითხოვს. ამ სათაურების აშკარა გადაგზავნა საჭიროა, რადგან proxy ყველა კავშირისთვის სპეციფიკურ სათაურს ავტომატურად არ გადასცემს.
