2017-07-18 5 views
0

私たちはAWS EC2 M4.xlargeインスタンスでサーバを実行しており、websocket接続では説明できない動作が見られます。
問題:当社のクライアント(接続するためのpythonのWebSocketクライアントを実行している)nginxの後ろの竜巻のWebSocketサーバーに接続されている、ALLを同時にとping /卓球TIMEDOUTのと同じ理由でドロップされています接続されている時間(3〜6時間の間)の後に。誤った設定をしているかどうかは不明です。WebSocket用のNginxの背後にあるトルネード - タイムアウト

net.core.somaxconn = 65536 net.ipv4.tcp_max_tw_buckets = 1440000 net.ipv4.tcp_fin_timeout = 15
/etc/nginx/nginx.conf:ここ

は、私たちのsysctl.confのための設定である

user www-data; 
worker_processes auto; 
pid /run/nginx.pid; 
events { 
    worker_connections 65000; 
    multi_accept on; 
} 
http { 
    sendfile on; 
    tcp_nopush on; 
    tcp_nodelay on; 
    keepalive_timeout 15; 
    keepalive_requests 100000; 
    types_hash_max_size 2048; 
    include /etc/nginx/mime.types; 
    default_type application/octet-stream; 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE 
    ssl_prefer_server_ciphers on; 
    access_log /var/log/nginx/access.log; 
    error_log /var/log/nginx/error.log; 
    gzip on; 
    gzip_disable "msie6"; 
    include /etc/nginx/conf.d/*.conf; 
    include /etc/nginx/sites-enabled/*; 
} 

これは、アプリケーション・サーバーのための私達の構成です。

upstream ourserver { 
    server 127.0.0.1:9999; 
} 
server { 
    listen 80; 
    listen [::]:80 ipv6only=on; 
    return 301 https://$host$request_uri; 
} 
server { 
    listen 443 default_server; 
    listen [::]:443 default_server ipv6only=on; 
    server_name **DNS**; 
    ssl on; 
    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers HIGH:!aNULL:!MD5; 
    ssl_certificate /etc/ssl/certs/ssl-bundle.crt; 
    ssl_certificate_key /etc/ssl/private/my.key; 
    client_max_body_size 10m; 
    client_body_buffer_size 128k; 
    client_header_buffer_size 1k; 
    keepalive_timeout 15s; 
    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;"; 
    location /secure/ { 
     proxy_pass http://ourserver; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
     proxy_read_timeout 86400; 
    } 
    location/{ 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header Host $http_host; 
     proxy_redirect off; 
     proxy_pass http://ourserver; 
     proxy_read_timeout 120s; 
     proxy_connect_timeout 120s; 
    } 
} 

ご協力いただきまして誠にありがとうございます。

答えて

0

私のon_messageにはDB呼出のために20msから200msの間にブロックコールがありました。この遅延は、残りのイベントに伝播し、最終的にクライアントによってソケットが破棄されました。

関連する問題