2014-12-08 8 views
6

क्या वेबसाकेट्स का उपयोग करते समय Nginx (चिपचिपा सत्र प्राप्त करने के लिए) ग्राहक पहचान पास करने का कोई तरीका है? HTTP के लिए "X-Forwarded-For" शीर्षलेख के समान कुछ?Nginx: XS Forwarded- WebSockets के लिए वैकल्पिक विकल्प क्या है?

उत्तर

6

वेबसाइट्स अपने जीवन को HTTP अपग्रेड हैंडशेक के तहत शुरू करते हैं। एक बार हैंडशेक सफलतापूर्वक पूरा हो जाने के बाद आप एक लंबे समय तक चलने वाले बिडरेक्शनल वेबस्केट कनेक्शन वापस ले लेंगे।

यदि आप वेबजेट्स के लिए प्रॉक्सी के रूप में Nginx का उपयोग करते हैं तो आप "एक्स-फॉरवर्ड-फॉर" का उपयोग भी कर सकते हैं, लेकिन केवल हैंडशेक पर भी। उदाहरण this simple configuration के लिए देखें:

# WebSocket Proxy 
# 
# Simple forwarding of unencrypted HTTP and WebSocket to a different host 
# (you can even use a different host instead of localhost:8080) 

server { 
    listen 80; 

    # host name to respond to 
    server_name ws.example.com; 

    location/{ 
     # switch off logging 
     access_log off; 

     # redirect all HTTP traffic to localhost:8080 
     proxy_pass http://localhost:8080; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header Host $host; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

     # WebSocket support (nginx 1.4) 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
    } 
} 

... और this page पर कुछ संदर्भों।

आप कॉन्फ़िगरेशन अनुरोध (क्लाइंट की पहचान करने के लिए उपयोग की जाने वाली जानकारी) के साथ Nginx को क्या भेजना चाहिए, यह कॉन्फ़िगर करें और क्लाइंट की पहचान करने के लिए हैंडशेक से जानकारी का उपयोग करने के लिए यह बैकएंड सर्वर का काम होगा और फिर वेबस्केट कनेक्शन को संबद्ध करेगा अपने ग्राहक के लिए। उस संगठन के आधार पर, उस वेबस्केट कनेक्शन पर आने वाला कोई भी संदेश पहले से पहचाने गए ग्राहक से संबंधित है।

संबंधित मुद्दे