WSS

2012-04-30 7 views
9

के लिए Nginx कॉन्फ़िगरेशन मुझे WSS के माध्यम से मेरे सर्वर पर कनेक्ट करने में कोई समस्या है। मैंने websockets के साथ nginx सेट करने के लिए निम्न आलेख का पालन किया: http://www.letseehere.com/reverse-proxy-web-socketsWSS

निम्नलिखित मेरी nginx कॉन्फ़िगरेशन है जो Play परोसता है! आवेदन:

#user nobody; 
worker_processes 1; 

error_log logs/error.log; 
#error_log logs/error.log notice; 
#error_log logs/error.log info; 

#pid  logs/nginx.pid; 

events { 
    worker_connections 1024; 
} 

tcp { 

    upstream websockets { 
     ## Play! WS location 
     server 127.0.0.1:9000; 
    }  

    server { 
     listen 80; 
     listen 8000; 
     server_name socket.domain.com; 

     tcp_nodelay on; 
     proxy_pass websockets; 
     proxy_send_timeout 300; 
    } 

    # virtual hosting 
    #include /usr/local/nginx/vhosts/*; 
} 

http { 

    server { 
     listen 443 ssl; 
     server_name socket.artoo.in; 

     ssl_certificate  /usr/local/nginx/key/socket.domain.com.crt; 
     ssl_certificate_key /usr/local/nginx/key/socket.domain.com.key; 

     ssl_session_timeout 5m; 

     ssl_protocols SSLv2 SSLv3 TLSv1; 
     ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; 
     ssl_prefer_server_ciphers on; 

     location/{ 
      proxy_pass http://127.0.0.1:9000; 
     } 
    } 
} 

जबकि सर्वर http://socket.domain.com, https://socket.domain.com, ws पर पहुँचा जा सकता है: //socket.domain.com नहीं बल्कि WSS: //socket.domain.com

उत्तर

3

मैं कम से कम के लिए यह समाधान कर लिया है स्टनल का उपयोग करके अल्प अवधि (इस आलेख का जिक्र: http://www.darkcoding.net/software/proxy-socket-io-and-nginx-on-the-same-port-over-ssl/)।

स्टनल एचटीटीपीएस को HTTP में परिवर्तित कर सकता है और उस टोकन WSS से WS तक परिवर्तित कर सकता है।

#user nobody; 
worker_processes 1; 

error_log logs/error.log; 
#error_log logs/error.log notice; 
#error_log logs/error.log info; 

#pid  logs/nginx.pid; 

events { 
    worker_connections 1024; 
} 

tcp { 

    upstream websockets { 
     ## Play! WS location 
     server 127.0.0.1:9000; 
     check interval=3000 rise=2 fall=5 timeout=1000; 
    }  

    server { 
     listen 80; 
     listen 8000; 
     server_name socket.artoo.in; 

     tcp_nodelay on; 
     proxy_pass websockets; 
     proxy_send_timeout 300; 

    } 

    # virtual hosting 
    #include /usr/local/nginx/vhosts/*; 
} 

#http { 
# 
# server { 
#  listen 443 ssl; 
#  server_name socket.artoo.in; 
# 
#  ssl_certificate  /usr/local/nginx/key/socket.domain.com.crt; 
#  ssl_certificate_key /usr/local/nginx/key/socket.domain.com.key; 
# 
#  ssl_session_timeout 5m; 
# 
#  ssl_protocols SSLv2 SSLv3 TLSv1; 
#  ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; 
#  ssl_prefer_server_ciphers on; 
# 
#  location/{ 
#   proxy_pass http://127.0.0.1:9000; 
#  } 
# } 
#} 

/usr/local/nginx/conf/nginx.conf

[https] 
accept = 443 
connect = 80 
TIMEOUTclose = 0 

/etc/stunnel/stunnel.conf

: Nginx सॉकेट आवेदन हमेशा की तरह 9000 बंदरगाह पर चल रहे कार्य किया अब मुझे केवल चिंता करने की ज़रूरत है कि nginx पर websockets के लिए टाइमआउट कैसे बढ़ाया जाए, कनेक्शन हर 75 सेकेंड (nginx के लिए डिफ़ॉल्ट) तोड़ रहा है।

+0

इस टाइमआउट समस्या को हल करने के लिए कैसे करें? एक बड़ी संख्या में टाइमआउट सेट करने से कहीं ज्यादा सुरुचिपूर्ण? –

3

मैं क्यू & एक प्रारूप से पता चलता है कि आप कैसे nginx मॉड्यूल, बहुत आसान है के साथ यह सब करने के लिए एक साथ एक गाइड डाल करने में सक्षम था;)

NGINX to reverse proxy websockets AND enable SSL (wss://)?

आप nginx के पुनर्निर्माण के लिए की आवश्यकता होगी और ऊपर दिए गए प्रश्न में कॉन्फ़िगरेशन का पालन करें।

+0

डोमेन ऑफ़लाइन है। –

+0

यह stackoverflow.com है, यकीन नहीं है कि मैं समस्या को समझता हूं? – crockpotveggies

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