ميّز أولًا بين فشل مصافحة الاتصال وبين اتصال يفتح ثم يغلق لاحقًا. يقود العَرَضان إلى فحوص مختلفة.
دع التطبيق يستقبل طلب الترقية
لمسار 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";
}
يستخدم صراحةً HTTP/1.1 باتجاه backend. ويمرر تغيير البروتوكول الذي طلبه العميل. ويخبر backend أن هذا الاتصال يطلب التغيير. تحتاج هذه الترويسات تمريرًا صريحًا لأن الوكلاء لا ينقلون ببساطة كل ترويس خاص بالاتصال.
