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)

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.


(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 .

Sekarang ini seharusnya jawaban yang diterima.
jonatan


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.