Pertahankan batas waktu hidup agar tidak dihormati di Amazon ELB

9

Saya menggunakan Tomcat 6.0.24 di Ubuntu (JDK 1.6) dengan aplikasi yang melakukan permintaan Comet-style pada konektor HTTPS (langsung terhadap Tomcat, tidak menggunakan APR).

Saya ingin mengatur agar tetap hidup menjadi 5 menit sehingga saya tidak perlu menyegarkan koneksi lama saya. Ini konfigurasi saya:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="1000"  keepAliveTimeout="330000"
        scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" />

Sayangnya sepertinya server menutup koneksi setelah 65 detik. PCap dari sesi sampel berlangsung seperti ini:

T=0   Client sends SYN to server, handshake etc.
T=65  Server sends FIN to client
T=307 Client sends FIN to server

(Saya menduga batas waktu 5 menit pada klien adalah karena HTTP lib tidak mendeteksi soket tutup di ujung server, tetapi dalam hal apa pun - server tidak boleh menutup koneksi secepat itu)

(edit: ini berfungsi seperti yang diharapkan saat menggunakan konektor HTTP standar)

sehugg
sumber

Jawaban:

13

ELB (Elastic Load Balancer) Amazon memiliki batas waktu 60 detik yang tidak berdokumen ( kecuali di forum ) yang akan menghancurkan koneksi jika tidak ada data yang dikirim. Meretas dengan mengirimkan spasi putih setiap 55 detik sepertinya akan berfungsi sampai mereka membuat ini dapat dikonfigurasi.

sehugg
sumber
(batas waktu masih ada, BTW .. jeesh)
sehugg
masih belum dapat dikonfigurasi ... ini adalah masalah yang tertunda sejak 2009 atau lebih sekarang ...
Dennis Münkle
4
Dapat dikonfigurasi hingga 1 jam sekarang docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/…
Peter
10

Batas waktu load balancer, yang menutup koneksi, sekarang didokumentasikan :

Untuk mengonfigurasi pengaturan batas waktu idle untuk load balancer Anda

  1. Buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/ .
  2. Di panel navigasi, di bawah LOAD BALANCING , klik Load Balancers .
  3. Pilih penyeimbang beban Anda.
  4. Di panel bawah, pilih tab Deskripsi .
  5. Temukan Pengaturan Koneksi , lalu klik (Edit) .
  6. Di kotak dialog Konfigurasikan Pengaturan Koneksi , masukkan nilai untuk Idle Timeout . Kisaran untuk waktu tunggu idle adalah 1 hingga 3.600 detik.
  7. Klik Simpan .
Zoltán
sumber
Sekarang ini seharusnya jawaban yang diterima.
jonatan